首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用css隐藏asp:

如何用css隐藏asp:
EN

Stack Overflow用户
提问于 2019-03-18 09:06:37
回答 1查看 107关注 0票数 0

我想用css隐藏我的asp: visible=false字段,但是当我添加css时,我不能访问这些值。所以我试着用css来隐藏它,但是css在BoundFiled中是不允许的,所以我试着添加了Updatepanel,div等等,但是它们是不被允许的。我如何用css隐藏我的BoundField。

我想用css隐藏的代码

                <asp:BoundField DataField = "compras_id" HeaderText="Compras ID" HtmlEncode="false" />
                <asp:BoundField DataField = "numero_contrato" HeaderText = "Numero contrato" HtmlEncode="false" />
                <asp:BoundField DataField="marca" HeaderText="Marca" HtmlEncode="false"  />
                <asp:BoundField DataField="designacion" HeaderText="Designacion"  HtmlEncode="false"  />
                <asp:BoundField DataField="tipo" HeaderText="Tipo"  HtmlEncode="false"  />
                <asp:BoundField DataField="referencia" HeaderText="Referencia"  HtmlEncode="false"  />
                <asp:BoundField DataField="plazo" HeaderText="Plazo"  HtmlEncode="false" />
                <asp:BoundField DataField="nombre_proveedor" HeaderText="Proveedor"  HtmlEncode="false"  />
                <asp:BoundField DataField="cantidad_requerida" HeaderText="Cantidad requerida"  HtmlEncode="false" />
                <asp:BoundField DataField="cantidad_pedida" HeaderText="Cantidad pedida"  HtmlEncode="false"  />

我的css

.myHide
{
    display:none;
}

这就是为什么我需要隐藏BoundFields这是我的前端

<asp:GridView ID="gvPrimaryGrid" runat="server" AutoGenerateColumns="false" ShowFooter="true" onrowdatabound="gvPrimaryGrid_RowDataBound"
                ShowHeaderWhenEmpty="true" AllowPaging="True" OnPageIndexChanging="gridView_PageIndexChanging" DataKeyNames="compras_id"
                 OnRowCommand="gvPrimaryGrid_RowCommand"  OnRowEditing="gvPrimaryGrid_RowEditing" OnRowCancelingEdit="gvPrimaryGrid_RowCancelingEdit"
                OnRowUpdating="gvPrimaryGrid_RowUpdating"  CellPadding="3" AllowUserToResizeColumns="True" PageSize="5" AllowSorting="true" onsorting="gvPrimaryGrid_Sorting"  GridLines="None" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt">
                <PagerSettings  Mode="Numeric"  />         
                <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                       <%--<asp:CheckBox ID="CheckBox1" AutoPostBack="true" EnableViewState="true"  runat="server" onclick="Check_Click(this)" OnCheckedChanged="chkRow_CheckChanged" />--%>
                       <asp:CheckBox ID="chkRow" AutoPostBack="true"  runat="server" OnCheckedChanged="chkRow_CheckChanged" />
                           <%--<asp:CheckBox ID="chkRow" runat="server" />--%>
                        <asp:ImageButton ImageUrl="~/Images/edit.png" runat="server" CommandName="Edit" ToolTip="Edit" Width="20px" Height="20px"/>
                        <asp:ImageButton ImageUrl="~/Images/delete.png" runat="server" CommandName="Delete" ToolTip="Delete" Width="20px" Height="20px"/>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:ImageButton ImageUrl="~/Images/save.png" runat="server" CommandName="Update" ToolTip="Update" Width="20px" Height="20px"/>
                        <asp:ImageButton ImageUrl="~/Images/cancel.png" runat="server" CommandName="Cancel" ToolTip="Cancel" Width="20px" Height="20px"/>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:ImageButton ImageUrl="~/Images/addnew.png" runat="server" CommandName="AddNew" ToolTip="Add New" Width="20px" Height="20px"/>
                    </FooterTemplate>
                </asp:TemplateField>   

                    <asp:BoundField DataField = "compras_id" HeaderText="Compras ID" HtmlEncode="false" />
                    <asp:BoundField DataField = "numero_contrato" HeaderText = "Numero contrato" HtmlEncode="false" />
                    <asp:BoundField DataField="marca" HeaderText="Marca" HtmlEncode="false"  />
                    <asp:BoundField DataField="designacion" HeaderText="Designacion"  HtmlEncode="false"  />
                    <asp:BoundField DataField="tipo" HeaderText="Tipo"  HtmlEncode="false"  />
                    <asp:BoundField DataField="referencia" HeaderText="Referencia"  HtmlEncode="false"  />
                    <asp:BoundField DataField="plazo" HeaderText="Plazo"  HtmlEncode="false" />
                    <asp:BoundField DataField="nombre_proveedor" HeaderText="Proveedor"  HtmlEncode="false"  />
                    <asp:BoundField DataField="cantidad_requerida" HeaderText="Cantidad requerida"  HtmlEncode="false" />
                    <asp:BoundField DataField="cantidad_pedida" HeaderText="Cantidad pedida"  HtmlEncode="false"  />

                 <asp:TemplateField HeaderText="Compras ID" SortExpression="compras_id" Visible="false">
                    <ItemTemplate>                       
                        <asp:Label DataField="compras_id" HtmlEncode="false"  ID="lblPurschaseID" CssClass="gridTextbox" Text='<%# Eval("compras_id") %>' runat="server" />
                    </ItemTemplate>
                    <%--<EditItemTemplate>
                        <asp:TextBox CssClass="gridTextbox" ID="txtType" Text='<%# Eval("tipo") %>' runat="server" />
                    </EditItemTemplate>--%>
                    <FooterTemplate>
                        <asp:TextBox  CssClass="gridTextbox" ID="txtPurschaseIDFooter" runat="server" />
                    </FooterTemplate>
                </asp:TemplateField>    
                  <asp:TemplateField HeaderText="Numero contrato" >
                    <ItemTemplate>                       
                        <asp:Label DataField="numero_contrato"  HtmlEncode="false"  ID="lblContractNumber" CssClass="gridTextbox" Text='<%# Eval("numero_contrato") %>' runat="server" />
                    </ItemTemplate>
                    <EditItemTemplate>   
                <asp:DropDownList  ID="drGridContractID" Runat="server"  AutoPostBack="false"  OnSelectedIndexChanged="DropDown_SelectedIndexChanged" />
                          <%-- <asp:TextBox CssClass="gridTextbox" ID="txtSupplier" Text='<%# Eval("nombre_proveedor") %>' runat="server" />--%>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox  CssClass="gridTextbox" ID="txtContractNumberFooter" runat="server" />
                    </FooterTemplate>
                </asp:TemplateField>    
                <asp:TemplateField HeaderText="Marca" SortExpression="marca">
                    <ItemTemplate>                       
                        <asp:Label DataField="Marca"  HtmlEncode="false"  ID="lblMarca" CssClass="gridTextbox" Text='<%# Eval("marca") %>' runat="server" />
                    </ItemTemplate>
                     <%-- <EditItemTemplate>
                        <asp:TextBox CssClass="gridTextbox" ID="txtBrand" Text='<%# Eval("marca") %>' runat="server" />
                    </EditItemTemplate>--%>
                    <FooterTemplate>
                        <asp:TextBox  CssClass="gridTextbox" ID="txtCountryFooter" runat="server" />
                    </FooterTemplate>
                </asp:TemplateField>

这是我的后端

private void GetSelectedRows()
    {
        DataTable dt = new DataTable();
        DataTable dt2 = new DataTable();
        if (ViewState["SelectedRows"] != null)
        {
            dt = (DataTable)ViewState["SelectedRows"];
        }
        else
        {
            dt = CreateDataTable();
        }
            //CheckBox chkAll = (CheckBox)gvPrimaryGrid.HeaderRow.Cells[0].FindControl("chkAll");
        for (int i = 0; i < gvPrimaryGrid.Rows.Count; i++)
        {
           /* if (chkAll.Checked)
            {
                dt = AddRow(gvPrimaryGrid.Rows[i], dt);
            }*/
            //else
            //{
                CheckBox chk = ((CheckBox)gvPrimaryGrid.Rows[i].Cells[0].FindControl("chkRow"));
                if (chk.Checked)
                {
                    dt2 = AddRow(gvPrimaryGrid.Rows[i], dt);
                }
                else

                {
                    dt2 = RemoveRow(gvPrimaryGrid.Rows[i], dt);
                }
           // }
        }
        ViewState["SelectedRows"] = dt2;
    }


    private DataTable CreateDataTable()
    {
        DataTable dt = new DataTable();
            dt.Columns.Add("compras_id");
            dt.Columns.Add("numero_contrato");
            dt.Columns.Add("marca");
            dt.Columns.Add("designacion");
            dt.Columns.Add("tipo");
            dt.Columns.Add("referencia");
            dt.Columns.Add("plazo");
            dt.Columns.Add("nombre_proveedor");
            //dt.Columns.Add("cantidad_requerida");
            dt.Columns.Add("cantidad_pedida");
            dt.Columns.Add("cantidad_entregada");
            dt.AcceptChanges();


        return dt;
    }

    private DataTable AddRow(GridViewRow gvRow, DataTable dt)
    {

        DataRow[] dr = dt.Select("compras_id = '" + gvRow.Cells[1].Text + "'");
        if (dr.Length <= 0)
        {
            int i = 1;
            dt.Rows.Add();
            dt.Rows[dt.Rows.Count - 1]["compras_id"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["numero_contrato"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["marca"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["designacion"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["tipo"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["referencia"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["plazo"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["nombre_proveedor"] = gvRow.Cells[i++].Text;
            //dt.Rows[dt.Rows.Count - 1]["cantidad_requerida"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["cantidad_pedida"] = gvRow.Cells[i++].Text;
            dt.Rows[dt.Rows.Count - 1]["cantidad_entregada"] = gvRow.Cells[i++].Text;
            dt.AcceptChanges();
        }
        return dt;
    }

    private DataTable RemoveRow(GridViewRow gvRow, DataTable dt)
    {
        DataRow[] dr = dt.Select("compras_id = '" + gvRow.Cells[1].Text + "'");
        if (dr.Length > 0)
        {
            dt.Rows.Remove(dr[0]);
            dt.AcceptChanges();
        }
        return dt;
    }

    private void BindSecondaryGrid()
    {
        DataTable dt = (DataTable)ViewState["SelectedRows"];
        gvSecondaryGrid.DataSource = dt;
        gvSecondaryGrid.DataBind();
    }

    protected void chkRow_CheckChanged(object sender, EventArgs e)
    {
        GetSelectedRows();
        SetData();
        BindSecondaryGrid();
    }

    private void SetData()
    {
        CheckBox chkAll = (CheckBox)gvPrimaryGrid.HeaderRow.Cells[0].FindControl("chkAll");
        //chkAll.Checked = true;
        if (ViewState["SelectedRows"] != null)
        {
            DataTable dt = (DataTable)ViewState["SelectedRows"];
            for (int i = 0; i < gvPrimaryGrid.Rows.Count; i++)
            {
                CheckBox chk = (CheckBox)gvPrimaryGrid.Rows[i].Cells[0].FindControl("chkRow");
                if (chk != null)
                {
                    DataRow[] dr = dt.Select("compras_id = '" + gvPrimaryGrid.Rows[i].Cells[1].Text + "'");
                    chk.Checked = dr.Length > 0;
                    //if (!chk.Checked)
                    //{
                    //    chkAll.Checked = false;
                    //}
                }
            }
        }
    }

正如您所看到的,我使用一个会话来存储表中的值,我已经创建了一个包含两个同名列的表用于编辑,并在表和新表之间创建了一个链接,用户可以通过选中第一个表的复选框来添加新行。

EN

回答 1

Stack Overflow用户

发布于 2019-03-18 09:19:36

我会使用模板字段而不是边界字段。

不要忘记,当您将webcontrol上的可见性设置为false时,它们不会呈现给响应

<asp:templatefield>
   <itemtemplate>
      <span class='myhide'><%# eval("columnname") %></span>
   </itemtemplate>
</asp:templatefield>

此外,中继器可以让你精确地控制呈现的HTML,这可能会让你得到更好的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55213520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档