0
我有一个asp网格,其中数据是动态绑定的。对于同一个网格,我添加了一个带有文本框的新行。问题是添加另一个新行不会保留以前的行数据。如何将新行添加到asp网格时保留上一行值
这里是网格结构和代码。
ASPX代码在这里:
<asp:GridView ID="gvReceivedComponent" runat="server" ShowFooter="true" AutoGenerateColumns="false" CssClass="list">
<HeaderStyle CssClass="searchResultHeader" />
<RowStyle CssClass="searchResultRow" />
<AlternatingRowStyle CssClass="searchResultAltRow" />
<Columns>
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" Visible="false" />
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="chkItemRetComp" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Component #">
<ItemTemplate>
<asp:Label ID="lblgvModel" runat="server" Text='<%# Eval("MODELNO") %>'></asp:Label>
<asp:TextBox runat="server" ID="txtModel" Width="85px" MaxLength="20" onkeypress="uppercase();" />
<asp:Button runat="server" ID="btnShowModel" CssClass="searchbutton" Width="20px" Text="..." ToolTip="Search for Model" />
<input type="hidden" id="hdnModelDesc" runat="server" value="" />
<input type="hidden" id="hdnModelIdy" runat="server" value="0" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Component Description">
<ItemTemplate>
<asp:Label ID="lblgvModelDesc" runat="server" Text='<%# Eval("MODELDESC") %>'></asp:Label>
<asp:TextBox ID="txtModelDesc" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=" BOM Qty">
<ItemTemplate>
<span style="width: 20px">
<asp:Label ID="lblgvBOMRecvCompQty" runat="server" Text='<%# Eval("QTY") %>'></asp:Label></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Actual Qty" HeaderStyle-Width="90px">
<ItemTemplate>
<asp:TextBox ID="txtActRecvCompQty" Width="30px" runat="server" Text='<%# Eval("QTY") %>' onkeypress="return IsNumeric()" onKeyDown="javascript:return ResetRCompChkBox(event);"></asp:TextBox>
<asp:HiddenField ID="hdnFlagtohidegvControls" runat="server" Value='<%#Eval("ISNEW")%>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
C#代码在这里:
void gvReceivedComponent_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button btnShowModel = (Button)e.Row.FindControl("btnShowModel");
TextBox txtModel = (TextBox)e.Row.FindControl("txtModel");
TextBox txtModelDesc = (TextBox)e.Row.FindControl("txtModelDesc");
HtmlInputHidden hdnModelDesc = (HtmlInputHidden)e.Row.FindControl("hdnModelDesc");
HtmlInputHidden hdnModelIdy = (HtmlInputHidden)e.Row.FindControl("hdnModelIdy");
HiddenField hdnFlagtohidegvControls = (HiddenField)e.Row.FindControl("hdnFlagtohidegvControls");
btnShowModel.Attributes.Add("onclick", "return ShowDivPopup('" + Constants.LookupCategory.CLIENTCUSTOMERMODEL + "', '" + Constants.LookupCategorySearchParms.CLIENTCUSTOMERMODELSEARCH + "', '" + txtModel.ClientID + "', '" + txtModelDesc.ClientID + "', 'false', '" + frmRecvRepairs.ID + "', '3','" + hdnModelIdy.ClientID + "');");
if (hdnFlagtohidegvControls.Value == "Y")
{
txtModel.Visible = false;
txtModelDesc.Visible = false;
btnShowModel.Visible = false;
}
else
{
txtModel.Visible = true;
txtModelDesc.Visible = true;
btnShowModel.Visible = true;
}
}
}
绑定电网
if (dsRAComponent != null)
{
if (dsRAComponent.Tables.Count > 0)
{
dsRAComponent.Tables[0].Columns.Add(new DataColumn("ISNEW"));
foreach (DataRow dr in dsRAComponent.Tables[0].Rows)
{
dr["ISNEW"] = "Y";
}
if (dsRAComponent.Tables[0].Rows.Count > 0)
{
gvReceivedComponent.DataSource = dsRAComponent;
gvReceivedComponent.DataBind();
}
Session["dsRAComponent"] = dsRAComponent.Tables[0];
}
添加新行
if (Session["dsRAComponent"] != null)
{
DataTable dtCurrentTable = (DataTable)Session["dsRAComponent"];
DataRow drCurrentRow;
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["MODELNO"] = String.Empty;
drCurrentRow["MODELDESC"] = String.Empty;
drCurrentRow["QTY"] = 0;
dtCurrentTable.Rows.InsertAt(drCurrentRow, 0);
Session["dsRAComponent"] = dtCurrentTable;
//Rebind the Grid with the current data
gvReceivedComponent.DataSource = dtCurrentTable;
gvReceivedComponent.DataBind();
}
你在哪里放置您重新绑定代码 – Jags 2014-11-24 05:44:51
@Jags数据集存储在会话,并同时加入按钮点击新行(“添加新行”)的新行被添加。 – 2014-11-24 05:48:05
添加您确定您的会话中的数据表具有所有可用的现有行...可以进行翻译和检查吗? – Jags 2014-11-24 06:04:45