视图状态中的文本框值变为空以确认

问题描述

我正在处理视图状态,但遇到了一些问题。我有几个由 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...