2014-05-08 30 views
1

我有一個網格視圖,其中我綁定了網格視圖的行,並且僅使用row.Style對用戶可見的第一行[「Display」] =「none」表示除第一行以外的其餘行。然後,我使用jquery使其餘行可見。在GridView的底部,我有一個按鈕,現在在按鈕單擊事件中,我必須找到用戶可見的行。我使用下面的代碼來知道在後面的代碼中用戶可以看到哪些行,但它只返回第一行。在asp.net中查找表中的行是否可見或不在代碼中

foreach (GridViewRow row in gvCheckPoints.Rows) 
     { 
      if (row.RowType == DataControlRowType.DataRow) 
      { 
       if (row.Style["Display"] != "none") 
       { 

       } 
      } 
     } 

請幫忙!謝謝

+1

也許還有另一種實現這一目標的方式。 您可以在每行中設置一個隱藏字段,您可以將其設置爲1或0,並且您可以找到該字段的值,如 ((HtmlInputHidden)row.FindControl('HiddenCtrl')).value.Equals() – progrAmmar

回答

0

你有改變 GridView行的狀態在Javascript。在回發時,從ViewState加載的GridView的狀態不會被Javascript更改。因此,您沒有收到Javascript可見的行。您可以將行的索引/ id存儲在某個隱藏字段中,然後在服務器端獲取該隱藏字段。你將需要隱藏字段runat="server"

的Html

<input type="hidden" id="hdn" runat="server" /> 

的JavaScript

document.getElementById("hdn").value = "1,0,0,1"; //here first and four rows are visible 

後面的代碼

string hdnValue = hdn.Value; 
相關問題