簡體   English   中英

隱藏帶有條件的asp.net GridView行

[英]Hide asp.net GridView row with condition

這是我的網格

  <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(受保護的void gridProduct_RowDataBound方法)中添加一個條件(基於在頁面加載中插入的測試值)以僅隱藏一次頁面加載?

謝謝弗蘭克!

我相信您可以從類型為“ PsaDataSet.PsaLinkRow ”的行中獲取DataBoundItem ,並使用它獲取ProductId,Series等,並執行所需的條件。 同樣,您在一個if條件中具有and if條件,並且兩個條件都相同。 您只需要一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM