如何在c#中添加gridview的固定行数
本文关键字:gridview 添加 | 更新日期: 2023-09-27 18:09:15
我必须插入固定的行数gridview。我没有使用数据库,也没有逐个创建行。
我最初想要7行3列,第一列有文本存储在我的数组。
我正在创建gridview,
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Height="146px"
OnLoad="row_created" Width="308px">
<Columns>
<asp:BoundField HeaderText="Day" />
<asp:TemplateField HeaderText="Available rooms">
<ItemTemplate>
<asp:TextBox ID="txt1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Price">
<ItemTemplate>
<asp:TextBox ID="txt2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
为什么不创建一个类对象,然后将其绑定到网格,设置index
的默认值以显示为Row Number
,并将所有其他成员Day, price and Rooms
从用户
类似:
class MyObject
{
public int Index { get; set; }
public string Day { get; set; }
public decimal Price { get; set; }
public string Rooms { get; set; }
}
像这样使用
List<MyObject> lst = new List<MyObject>();
lst.Add(new MyObject { Index = 1});
lst.Add(new MyObject { Index = 2});
注。:名称和用法只是为了说明思想
有很多方法可以做到这一点。
有些方法是创建一个DataTable并插入数据,然后将其绑定到GridView。
一个更好的解决方案是用数据创建对象,将它们存储在某种类型的集合中(列表或数组都可以),然后将集合绑定到DataGrid。如果您不想为此创建一个类,您可以使用匿名类型。
建议如下:
- 将网格的数据源定义为数据表
- 只需更改数据表对象的结构并重新绑定到网格,如适用
- : -
= =>
public partial class WebPage : System.Web.UI.Page
{
protected DataTable GridSource
{
get { return ViewState["GridSource"] as DataTable; }
set
{
ViewState["GridSource"] = value;
gridViewControl.DataSource = value;
gridViewControl.DataBind();
}
}
private void AddRow(DataRow row)
{
// Get the lastly binded structure and data
DataTable tableSource = this.GridSource;
// Add row to data-table "tableSource"
//..
// Apply the new structure and data
this.GridSource = tableSource;
}
// .. Add relevant implementation (methods) for remove, modify operations
//..
}
我曾经遇到过同样的问题。这个教程帮助我解决了我的问题。你可以去看看……http://geekswithblogs.net/dotNETvinz/archive/2009/06/04/adding-dynamic-rows-in-gridview-with-textboxes.aspx