我正在尝试创建gridview
,其中最初应该填写序列号列和第二列[PRODUCTS]数据,即在页面加载时,其他列将具有文本框。请参考图片了解网格视图结构。
然后,用户将参考第二列数据填充相应文本框上的数据。如何创建这样的网格视图?
答案 0 :(得分:1)
以下是此类gridview
的示例。您可能只需要从database
添加数据的硬编码数据。如果您从database
获取数据,则可以使用loop
填充数据。
aspx
页面
<asp:GridView ID="gvFabricDetails" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="SL">
<ItemTemplate>
<asp:TextBox ID="txtLot" TabIndex="2" Text='<%# Bind("SL") %>' runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="PRODUCTS">
<ItemTemplate>
<asp:TextBox ID="txtArt" TabIndex="3" Text='<%# Bind("PRODUCTS") %>' runat="server" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtBalance" TabIndex="8" Text='<%# Bind("Quantity") %>' runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Producer">
<ItemTemplate>
<asp:TextBox ID="txtQTY" TabIndex="9" Text='<%# Bind("Producer") %>' runat="server" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
以下是将row
添加到gridview
private void FirstGridViewRow()
{
DataTable dt = new DataTable();
DataRow dr = null;
DataRow dr1 = null;
DataRow dr2 = null;
DataRow dr3 = null;
DataRow dr4 = null;
dt.Columns.Add(new DataColumn("SL", typeof(int)));
dt.Columns.Add(new DataColumn("PRODUCTS", typeof(string)));
dt.Columns.Add(new DataColumn("Quantity", typeof(string)));
dt.Columns.Add(new DataColumn("Producer", typeof(string)));
dr = dt.NewRow();
dr1 = dt.NewRow();
dr2 = dt.NewRow();
dr3 = dt.NewRow();
dr4 = dt.NewRow();
dr["SL"] = 1;
dr["PRODUCTS"] = "A";
dr["Quantity"] = string.Empty;
dr["Producer"] = string.Empty;
dr1["SL"] = 2;
dr1["PRODUCTS"] = "B";
dr1["Quantity"] = string.Empty;
dr1["Producer"] = string.Empty;
dr2["SL"] = 3;
dr2["PRODUCTS"] = "C";
dr2["Quantity"] = string.Empty;
dr2["Producer"] = string.Empty;
dr3["SL"] = 4;
dr3["PRODUCTS"] = "D";
dr3["Quantity"] = string.Empty;
dr3["Producer"] = string.Empty;
dr4["SL"] = 5;
dr4["PRODUCTS"] = "E";
dr4["Quantity"] = string.Empty;
dr4["Producer"] = string.Empty;
dt.Rows.Add(dr);
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
dt.Rows.Add(dr3);
dt.Rows.Add(dr4);
//ViewState["CurrentTable"] = dt; if you want to get previous state keep it in viewstate
gvFabricDetails.DataSource = dt;
gvFabricDetails.DataBind();
}
现在您可以在Page_Load
事件
if (!Page.IsPostBack)
{
FirstGridViewRow();
}