gpt4 book ai didi

c# - 无法获取 TextBox 值 OnRowUpdating

转载 作者:行者123 更新时间:2023-11-30 21:57:40 25 4
gpt4 key购买 nike

I'm trying to Update Gridview record. In the code given below I'm not getting "txtChangeQuantity" textbox value in GridView1_RowUpdating updating event. It just shows an empty string. What am I missing here?

TextBox tb = row.Cells[2].FindControl("txtChangeQuantity") as TextBox;
string a = tb.Text;

a is ""

 <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" Width="450px" 
DataKeyNames="ItemID" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="ItemName" HeaderText="Name" ReadOnly="true" />
<asp:BoundField DataField="Price" HeaderText="Unit Price" ReadOnly="true" />

<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lbltxtChangeQuantity" runat="server" Text='<%# Eval("Quantity") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtChangeQuantity" runat="server" Text='<%# Eval("Quantity") %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# String.Format("{0:c}", ((double)Eval("Price"))*((int)Eval("Quantity"))) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" />


<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkdelete" runat="server" CommandName="Delete" >Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>


</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<SortedAscendingCellStyle BackColor="#FDF5AC" />
<SortedAscendingHeaderStyle BackColor="#4D0000" />
<SortedDescendingCellStyle BackColor="#FCF6C0" />
<SortedDescendingHeaderStyle BackColor="#820000" />
</asp:GridView>


protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid();
}
}

private void BindGrid()
{

if (Session["CartItems"] != null)
{
List<ItemModel> itemList = (List<ItemModel>)Session["CartItems"];
GridView1.DataSource = itemList;
GridView1.DataBind();
}

}



protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
RepItem = new ItemRepository();
string val = e.Keys["ItemID"].ToString();
if (Session["CartItems"] != null)
{

GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
List<ItemModel> itemList = (List<ItemModel>)Session["CartItems"];

TextBox tb = row.Cells[2].FindControl("txtChangeQuantity") as TextBox;
string a = tb.Text;

GridView1.DataSource = itemList;
GridView1.DataBind();
}
}

最佳答案

在 gridview 中使用此 findcontrol 代码。

string tb = ((TextBox)GridView1.Rows[rowIndex].FindControl("txtChangeQuantity")).Text

您的问题是文本框 ID lbltxtChangeQuantity 并更改它 txtChangeQuantity

关于c# - 无法获取 TextBox 值 OnRowUpdating,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30544335/

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