2012-01-25 79 views
0

這是我的網格隱藏asp.net GridView的行與條件

<asp:GridView ID="gridProduct" runat="server" 
    AutoGenerateColumns="false" 
    ShowFooter="true" 
    onrowcancelingedit="gridProduct_RowCancelingEdit" 
    onrowdeleting="gridProduct_RowDeleting" onrowediting="gridProduct_RowEditing" 
    onrowupdating="gridProduct_RowUpdating" 
    onrowcommand="gridProduct_RowCommand" 
    onrowdatabound="gridProduct_RowDataBound"> 
     <Columns> 
      <asp:TemplateField> 
      <EditItemTemplate> 
       <asp:Button ID="buttonUpdate" CommandName="Update" runat="server" ToolTip="Update" Text="Update" /> 
       <asp:Button ID="buttonCancel" CommandName="Cancel" runat="server" ToolTip="Cancel" Text="Cancel" /> 
      </EditItemTemplate> 

      <ItemTemplate> 
       <asp:Button ID="buttonEdit" CommandName="Edit" runat="server" Text="Edit" ToolTip="Edit"/> 
       <asp:Button ID="buttonDelete" CommandName="Delete" runat="server" Text="Delete" ToolTip="Delete"/> 
      </ItemTemplate> 
      <FooterTemplate> 
       <asp:Button ID="buttonAdd" runat="server" Text="Ajouter" CommandName="AddNew" ToolTip="Add new User" ValidationGroup="validaiton" /> 
      </FooterTemplate> 

      </asp:TemplateField> 
      <asp:TemplateField HeaderText="#Piece"> 
      <EditItemTemplate> 
      <asp:Label ID="labelEditPiece" runat="server" Text='<%#Eval("Piece") %>'/> 
      </EditItemTemplate> 
      <ItemTemplate> 
      <asp:Label ID="labelItemPiece" runat="server" Text='<%#Eval("Piece") %>'/> 
      </ItemTemplate> 
      <FooterTemplate> 
      <asp:DropDownList ID="dropDownListPartsFooter" runat="server" DataTextField="Nom" DataValueField="ID_AchatTemplate"> 
      </asp:DropDownList> 

      ControlToValidate="txtBoxPiece" Text="*" ValidationGroup="validaiton"/>--%> 
      </FooterTemplate> 

      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Series"> 
      <EditItemTemplate> 
      <asp:Label ID="labelEditSeries" runat="server" Text='<%#Eval("Series") %>'/> 
      </EditItemTemplate> 
      <ItemTemplate> 
      <asp:Label ID="labelItemSeries" runat="server" Text='<%#Eval("Series") %>'/> 

      </ItemTemplate> 
      <FooterTemplate> 
      <asp:TextBox ID="txtBoxSeries" runat="server"/> 
      <asp:RequiredFieldValidator ID="fieldValidSeries" runat="server" ControlToValidate="txtBoxSeries" Text="*" ValidationGroup="validaiton"/> 
      </FooterTemplate> 

       .... </asp:TemplateField> 

      </Columns> 

這是我的頁面加載

 protected void Page_Load(object sender, EventArgs e) 
{ 

    if (!IsPostBack) 
    { 
     PsaDataSet psaList = new PsaDataSet(); 
     ViewState.Remove("psaList"); 
     ViewState.Add("psaList", psaList); 
     ViewState.Add("psaUid", Guid.NewGuid()); 

     if (psaList.PsaLink.DefaultView.Count == 0) 
      { 

       // Patch for view footer row when no data 
       PsaDataSet.PsaLinkDataTable tmpList = new   PsaDataSet.PsaLinkDataTable(); 

       PsaDataSet.PsaLinkRow tmpItem = tmpList.NewPsaLinkRow(); 
       tmpItem.PsaUid = (Guid)ViewState["psaUid"]; 
       tmpItem.PsaProductUid = Guid.Empty; 
       tmpItem.ProductId = 1; 
       tmpItem.Series = "test"; 
       tmpItem.Rev = "test"; 
       tmpItem.Firmware = "test"; 
       tmpList.AddPsaLinkRow(tmpItem); 
       tmpList.AcceptChanges(); 
       ViewState.Add("series", tmpItem.Series); 


       gridProduct.DataSource = tmpList; 
       gridProduct.DataBind(); 


      } 

    } 
    else 
    { 
     //BindGrid((PsaDataSet)ViewState["psaList"], false); 

    } 
} 

private void BindGrid(PsaDataSet psaList, bool mustDataBind) 
{ 

    gridProduct.DataSource = psaList.PsaLink; 


    //if (mustDataBind) 
    //{ 
     gridProduct.DataBind(); 
    //} 
} 

這是我的onrowdatabound = 「gridProduct_RowDataBound」>方法

 protected void gridProduct_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      if (e.Row.RowType == DataControlRowType.DataRow) 
      { 
       e.Row.Attributes["style"] = "display:none"; 

      } 
     } 
} 

我想在if(protected void gridProduct_RowDataBound方法)中爲h添加一個條件(基於在頁面加載中插入的測試值)只在頁面加載一次?

謝謝弗蘭克!

回答

0

我相信你可以從「PsaDataSet.PsaLinkRow」類型的行中獲得DataBoundItem,並使用它獲得ProductId,Series等等,並按照你的要求做條件。此外,如果條件符合條件,並且兩者條件相同,您也有條件。你只需要一個。