2015-07-03 65 views
0

我正在使用Asp.net并处于中间状态。 我有一个gridview模板field.Gridview有3列,我想将两列的值传递给服务器端。隐藏的模板字段值在服务器端不可用

方案 -On点击lnkRemove(LinkBut​​ton的),该GUID应传递(在命令arguement获得通过),也SEQ_NBR列的值(通过这个值对我来说是问题) 我尝试与隐藏字段,但如何获得服务器端代码中的hiiden字段值(即Deletedata)。

代码

<asp:GridView> 
<Columns> 
<asp:TemplateField ItemStyle-Width = "100px" HeaderText = "SEQ_NBR"> 
     <ItemTemplate> 
     <asp:HiddenField ID="HiddenField1" runat="server" 
      Value='<%# Eval("SEQ_NBR") %>' /> 
      <asp:Label ID="SEQ_NBR" runat="server" 
        Text='<%# Eval("SEQ_NBR")%>'></asp:Label> 
     </ItemTemplate> 
     <FooterTemplate> 
      <asp:Label ID="SEQ_NBR" runat="server" ReadOnly="true" Text="Auto generated"></asp:Label> 
     </FooterTemplate> 
    </asp:TemplateField> 
<asp:TemplateField> 
    <ItemTemplate> 
<asp:LinkButton ID="lnkRemove" runat="server" 
      CommandArgument = '<%# Eval("GUID")%>' 
     OnClientClick = "return confirm('Do you want to delete?')" 
     Text = "Delete" OnClick = "Deletedata"></asp:LinkButton> 

    </ItemTemplate> 

</asp:TemplateField> 
</Columns> 
</asp:GridView> 

而且我的服务器端代码:

protected void Deletedata(object sender, EventArgs e) 
     { 
//I want Hiddden field value here;I tried below code but not working.Any suggestion . 
chkSelect = GridView.Controls[0].Controls[0].FindControl("HiddenField1"); 
     } 
+0

是'Deletedata'实际上'DeleteRecipdata'? –

+0

哦对不起。我更正了 – Vicky

回答

0

不要使用

GridView.Controls[0].Controls[0].FindControl("HiddenField1"); 

但由于该GridViewRowNamingContainer

GridView.Rows[0].FindControl("HiddenField1"); 

但是在这种情况下,您希望从LinkBut​​ton的单击事件中找到hiddenfield。因此使用以下方法。 LinkBut​​ton的NamingContainerGridViewRow

protected void Deletedata(object sender, EventArgs e) 
{ 
    LinkButton lnkRemove = (LinkButton) sender; 
    GridViewRow row = (GridViewRow) lnkRemove.NamingContainer; 
    HiddenField hf = (HiddenField) row.FindControl("HiddenField1"); 
    string seqNbr = hf.Value; // voilà 
} 
+0

哦....我在附近玩,但没有得到解决方案。谢谢很多先生 – Vicky

0

试试这个

 GridViewRow row = (sender as LinkButton).NamingContainer as GridViewRow; 
     GridView.SelectedIndex = row.RowIndex; 
     var HiddenField= GridView.Rows[gridMain.SelectedIndex].FindControl("HiddenField1") as HtmlInputHidden;  
     if (HiddenField!= null) 
     { 
      sting strValue = HiddenField.Value; 
     } 
相关问题