2015-07-03 66 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; 
     } 
相關問題