这是我的网格视图
<asp:GridView ID="grvClaimBanks" runat="server" AutoGenerateColumns="false" AllowPaging="false" OnRowCommand="grvClaimBanks_RowCommand">
<Columns>
<asp:TemplateField HeaderText="Sr.No">
<ItemTemplate>
<%#Container.DataItemIndex +1 %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:TextBox ID="txtMoratoriumPeroid" runat="server">
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Action">
<ItemTemplate>
<asp:LinkButton ID="lnkEditProduction" runat="server" CommandArgument='<%# Eval("TextileSLACId") %>' CommandName="EnterClaim" Text="Enter Claim" CausesValidation="false"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
现在我要设置&#34; txtMoratoriumPeroid&#34;的值as&#34; CommandArgument&#34; of&#34; lnkEditProduction&#34;,所以我可以在网格视图的行命令事件中访问该值。
这可能吗?
如果是,请帮助......
答案 0 :(得分:1)
绑定TextBox
的方式不会让客户端的值发生变化,而服务器端的TextBox
似乎为空。您可以在RowCommand事件中获取当前row
命令按钮,并查找TextBox
以获取其值。
GridViewRow row = (GridViewRow)(((Control)e.CommandSource).NamingContainer);
TextBox txtMoratoriumPeroid= row.FindControl("txtMoratoriumPeroid") as TextBox;
if(txtMoratoriumPeroid != null)
{
//Your code here.
string txtMoratoriumPeroidText = txtMoratoriumPeroid.Text;
}
答案 1 :(得分:1)
不可以动态提供动态CommandArgument。 但你可以通过
实现这一目标LinkButton lbtnSender = (LinkButton)sender;
TextBox txtMoratoriumPeroid = (TextBox)lbtnSender.Parent.Parent.FindControl("txtMoratoriumPeroid");
string MoratoriumPeroid = txtMoratoriumPeroid.Text;