Программно Textbox для Gridview без источника данных - PullRequest
0 голосов
/ 25 марта 2011

У меня есть TextBox и Gridview.

<asp:Textbox ID="TextBox1" runat="server" ></asp:Textbox> 

<asp:GridView ID="GridView1" runat="server">
        </asp:GridView>

Без DataSource, как я могу добавить в мой файл .cs программно только TextBox1.Text к первому столбцу Gridview?

GridView1.Columns[1].ToString() = TextBox1.Text like that example

Ответы [ 2 ]

1 голос
/ 25 марта 2011

Вы ищете способ обработки информации при отсутствии данных? Если это так, вы можете использовать EmptyDataTemplate в GridView и обращаться к нему программно для отображения значений вашего TextBox.

Если просто нет «связанных» данных для использования, GridView потребует какой-то источник данных с хотя бы одной записью, чтобы функционировать и отображаться правильно. Тем не менее, вы можете легко добавить некоторые фиктивные данные, чтобы включить функциональность вашего GridView, а затем вы можете настроить их на свое усмотрение.

Предполагая, что у вас есть кнопка для инициации обратной записи (или вы можете использовать событие OnTextChanged вашего TextBox), просто добавьте следующий код.

List<string> dummyList = new List<string>(){""};
GridView1.DataSource = dummyList;
GridView1.DataBind();

Примечание. Объект списка - это простой и быстрый способ использования заполнителя для источника данных для GridView. Если вы действительно собираетесь работать с несколькими столбцами, я бы порекомендовал создать простой DataTable со столбцами, которые вам понадобятся, вставить и очистить строку и связать с ней. Это избавляет от необходимости создавать все ваши столбцы программно.

Затем в событии RowDataBound вашего GridView вы можете работать с GridView столько раз, сколько захотите.

if (e.Row.RowType -= DataControlRowType.DataRow)
{
   e.Row.Cells(0).Text = TextBox1.Text;
}
1 голос
/ 25 марта 2011

Хорошо, попробуйте это. Это установит в первой ячейке первой строки значение вашего текстового поля:

GridView1.Rows[0].Cells[0].Text = TextBox1.Text;

Помните, что доступ к столбцам и строкам осуществляется с нулевого индекса, поэтому первая ячейка второй строки доступна следующим образом:

GridView1.Rows[1].Cells[0].Text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...