我必须在gridview中插入修正行数。我没有使用数据库,也没有逐个创建行。
我最初想要7行3列,第一列的文本存储在我的数组中。
我正在创建gridview as,
<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>
答案 0 :(得分:1)
为什么不创建一个类对象然后将其绑定到网格,设置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});
p.s。:名称和用法仅用于解释这个想法
答案 1 :(得分:0)
有很多方法可以做到这一点。
有些方法是创建DataTable并将数据插入其中,然后将其绑定到GridView。
更好的解决方案是使用您的数据创建对象,将它们存储在某种集合中(List或数组将执行),然后将您的集合绑定到DataGrid。 如果您不想为此创建类,则可以使用匿名类型。
答案 2 :(得分:0)
以下是建议的解决方案:
==&GT;
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
//..
}
答案 3 :(得分:0)
我曾经遇到过同样的问题..这个教程帮助我解决了我的问题..你可以看一下.. http://geekswithblogs.net/dotNETvinz/archive/2009/06/04/adding-dynamic-rows-in-gridview-with-textboxes.aspx