以编程方式将Textbox格式化为Gridview而不使用DataSource

时间:2011-03-25 14:29:26

标签: c# .net asp.net gridview

我有一个TextBox和一个Gridview

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

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

如果没有DataSource,我怎样才能以编程方式将.Box文件添加到Gridview的第一列TextBox1.Text中?

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

2 个答案:

答案 0 :(得分:1)

好的,试试吧。这会将第一行的第一个单元格设置为文本框的值:

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

请记住,使用从零开始的索引访问列和行,因此第二行的第一个单元格的访问方式如下:

GridView1.Rows[1].Cells[0].Text

答案 1 :(得分:1)

您是否在寻找没有数据时处理信息的方法?如果是这样,您可以使用GridView中的EmptyDataTemplate并以编程方式访问它以显示TextBox的值。

如果根本没有“绑定”数据可供使用,GridView将需要某种数据源,至少有一个条目可以正常运行和显示。但是,您可以轻松添加一些虚拟数据以启用GridView的功能,然后您可以根据自己的内容进行调整。

假设您有一个按钮来启动回发(或者您可以使用TextBox的OnTextChanged事件),只需添加以下代码。

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

注意:列表对象只是一种使用占位符作为GridView数据源的快捷方式。如果您真的打算使用多个列,我建议您创建一个简单的DataTable,其中包含您需要的列,插入和清空行,并与之绑定。它消除了以编程方式创建所有列的麻烦。

然后在GridView的RowDataBound事件中,您可以根据需要使用GridView。

if (e.Row.RowType -= DataControlRowType.DataRow)
{
   e.Row.Cells(0).Text = TextBox1.Text;
}