在我的页面加载方法中,我想将模板字段中的文本框设置为值。
以下是我当前的源代码,显示了我的模板字段文本框项'txtQuan':
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblTotalRate" Text="Qty:" runat="server" />
<asp:TextBox ID="txtQuan" Height="15" Width="30" runat="server" />
<asp:Button ID="addButton" CommandName="cmdUpdate" Text="Update Qty" OnClick="addItemsToCart_Click" runat="server" />
</ItemTemplate>
</asp:TemplateField>
这就是我试图设置TextBox值的方法:
string cartQty = Qty.ToString();
((TextBox)(FindControl("txtQuan"))).Text = cartQty;
我当前收到'nullRefernceException错误'。
答案 0 :(得分:5)
使用RowDataBound事件执行此操作。你可以在互联网上查看。该事件处理程序的参数使您可以轻松访问每一行。您还可以使用var rows = myGridView.Rows
var rows = myGridView.Rows;
foreach(GridViewRow row in rows)
{
TextBox t = (TextBox) row.FindControl("txtQuan");
t.Text = "Some Value";
}
protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
TextBox t = (TextBox) e.Row.FindControl("txtQuan");
t.Text = "Some Value";
}
}
答案 1 :(得分:2)
((TextBox)grdviewId.Row.FindControl("txtQuan")).Text=cartQty;