问题描述
我正在处理视图状态,但遇到了一些问题。我有几个由 viewstate 承载的列。在我的 countedQuantity 列中,我想在 gridview 中使用文本框。然后我必须在确认事件到数据库时在视图状态中保留文本框值。但是当我尝试这种方法时,文本框中的值在保存操作时变为空值。这是我尝试过的:
此代码用于我的设计页面:
<asp:GridView ID="grdItems" runat="server" DataKeyNames="item_id" CssClass="table" AutoGenerateColumns="False" BorderWidth="0px" GridLines="Horizontal" OnRowDeleting="grdItems_RowDeleting" meta:resourcekey="GridView5Resource1" >
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="btnSelect" runat="server" BackColor="DarkRed" CausesValidation="false" CommandName="Delete" style="color: White" Text="Delete" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="item_id" HeaderText="Item ID" SortExpression="item_id" meta:resourcekey="BoundFieldResource9" />
<asp:BoundField DataField="item_code" HeaderText="Item Code" SortExpression="item_code" meta:resourcekey="BoundFieldResource1" />
<asp:BoundField DataField="item_name" HeaderText="Item Name" SortExpression="item_name" meta:resourcekey="BoundFieldResource2" />
<asp:BoundField DataField="item_group_name" HeaderText="Item Group Name" SortExpression="item_group_name" meta:resourcekey="BoundFieldResource3" />
<asp:BoundField DataField="item_unit_name" HeaderText="Item Unit" SortExpression="item_unit_name" meta:resourcekey="BoundFieldResource4" />
<asp:BoundField DataField="countedStorageText" HeaderText="Storage" SortExpression="countedStorageText" meta:resourcekey="BoundFieldResource5" />
<asp:TemplateField HeaderText="Yeni Stok Adedi" SortExpression="countedQuantity">
<ItemTemplate>
<asp:TextBox ID="txtCountedQuantity" EnableViewState="true" runat="server" Text='<%# Bind("countedQuantity") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="countedDescription" HeaderText="Counted Desc." SortExpression="countedDescription" meta:resourcekey="BoundFieldResource7" />
<asp:BoundField DataField="PROC" HeaderText="PROC" SortExpression="PROC" meta:resourcekey="BoundFieldResource8" />
</Columns>
<SelectedRowStyle BackColor="#CCCCFF" />
</asp:GridView>
这是我尝试过的:
EnableViewState="true"
但它不起作用
以下是我在 viewstate
中保留网格值的方法:
DataTable _tblItems = (DataTable)ViewState["TblItems"];
if (_tblItems == null)
{
_tblItems = dt;
}
else
{
DataRow dr = _tblItems.Select("item_id = " + grdSearchForItems.DataKeys[grdSearchForItems.SelectedIndex].Values[0] + " AND countedStorage = " + ddlItemSelectedStorage.SelectedValue).FirstOrDefault();
if (dr != null)
{
dr["countedQuantity"] = Convert.ToDecimal(txtItemCountedQuantity.Text);
dr["countedDescription"] = txtItemDescription.Text;
if (dr.Table.Columns.Contains("IdNumber") && dr["IdNumber"] != DBNull.Value)
dr["PROC"] = "UPD";
}
else
{
_tblItems.Merge(dt);
}
}
ViewState["TblItems"] = _tblItems;
grdItems.DataSource = _tblItems;
grdItems.DataBind();
我经历了艰难的搜索,但找不到解决方案。你能帮我解决这个问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)