gpt4 book ai didi

c# - ASP C# GridView 从编辑值更新 SQL 数据库

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:19 25 4
gpt4 key购买 nike

我正在努力处理这段代码。我有一个 gridview,它有一个可见列和一个不可见列 (Visible="False")。不可见列是系统值,因此我不想向用户显示。

 <asp:TemplateField HeaderText="Del. Qty">
<ItemTemplate>
<%# Eval("QUANTITY")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtQuantity" Text='<%# Eval("QUANTITY")%>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="System ID" Visible="False">
<ItemTemplate>
<%# Eval("SYS_ID")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtSys" Text='<%# Eval("SYS_ID")%>' />
</EditItemTemplate>
</asp:TemplateField>

C#代码:

protected void OnRowUpdating(object sender, GridViewUpdateEventArgs e)
{
var row = GridView2.Rows[e.RowIndex];
var txtQuantity = (TextBox) row.FindControl("txtQuantity");
var txtSys = (TextBox) row.FindControl("txtSys");

var qty = Convert.ToDecimal(txtQuantity.Text);
var sysId = txtSys.Text;

UpdateProduct(qty, sysId);
}

在调试时,我注意到问题是 txtSys 经常显示为 NULL。如何使 SYS_ID 的值对用户不可见,但可用于更新语句?

最佳答案

当您使用 Visible=false 时,该列不会呈现到 gridview 中。因此,当您尝试使用 row.FindControl 时,它将返回 NULL,因为控件实际上并不存在。

不是使用 Visible=false,而是用一个没有可见性的 DIV 包围该元素:

<EditItemTemplate>
<div style="visibility:hidden;">
<asp:TextBox runat="server" ID="txtSys" Text='<%# Eval("SYS_ID")%>' />
</div>
</EditItemTemplate>

关于c# - ASP C# GridView 从编辑值更新 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47246764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com