从服务器端 C# 的 div 中删除 css

Posted

技术标签:

【中文标题】从服务器端 C# 的 div 中删除 css【英文标题】:Remove css from div on server side C# 【发布时间】:2015-06-05 16:18:09 【问题描述】:

我有一个 div 标签,它具有隐藏可见性的内联 css

 <div id="SecondGrid" runat="server" style="width:80%; margin-left:10%; visibility:hidden;">
//content
</div>

我在gridview中有一个按钮,点击它我想删除上述div的可见性css

  protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    
        if (e.CommandName == "ShowCarModels")
        
            CarBrandID = Convert.ToInt32(e.CommandArgument.ToString());
            BindGridView2(CarBrandID);
            SecondGrid.Style.Remove("visibility");

        
    

div 似乎仍然是隐藏的。你能帮帮我吗?

【问题讨论】:

按钮调用回发? 没有按钮不是回发 ***.com/questions/4333570/… 【参考方案1】:

您应该使用Visible 属性。当您在服务器端使用 html 控件时,您可以使用 Visible 属性来显示或隐藏控件。

SecondGrid.Visible = true;

对于上述解决方案,您需要将 html 标记更改为以下内容

<div id="SecondGrid" runat="server" visible="false" style="width:80%; margin-left:10%;">
//content
</div>

但如果您想继续使用您的标记,您也可以使用 HtmlTextWriterStyle 删除样式

SecondGrid.Style.Remove(HtmlTextWriterStyle.Visibility);

【讨论】:

不,它仍然无法正常工作。我认为不能在“GridView1_RowCommand”函数中更改 css。 :( 您是否调试过代码,当单击按钮转到该行以将 Visible 设置为 true 时? 是的,做了调试。它执行该行但 css 'Visibility' 不会改变 为网格中的按钮设置 AutoPostBack="true"。还是不行 正如@Manish 提到的,应该从 Html 代码中删除“Visibility”并仅添加 Visible='false',然后在您的代码中仅设置 Visible=true。不需要改变样式【参考方案2】:

dint 找到了在“GridView1_RowCommand”下没有任何 css 样式更改不起作用的原因,但找到了解决我的解决方案的方法。只是想分享。

已将 css 放在一个类中

  .SecondG 
        
            visibility:hidden;
        

将类分配给 div

  <div id="SecondGrid" runat="server" style="width:80%; margin-left:10%; padding:20px; border:1px solid #E6E6E6;" class="SecondG" >

创建了一个 javascript 来从 div 中删除类

  function ShowModel()
        
               var d = document.getElementById("<%=SecondGrid.ClientID%>");
               d.className = "";

        

在网格中单击按钮时调用上述 javascript 函数。

 <asp:TemplateField ItemStyle-Width="5%" HeaderText="Models" HeaderStyle-CssClass="header-center">
                                        <ItemTemplate>
                                            <asp:Button ID="img_Save" runat="server" OnClientClick="ShowModel()" CommandArgument='<%# Eval("CarBrandID") %>' CommandName="ShowCarModels" Width="100%"  Text="Display Models"  />
                                        </ItemTemplate>
                                    </asp:TemplateField>

及其工作。非常感谢大家的帮助..

【讨论】:

问题是如何在服务端删除Css。 ***.com/questions/4333570/…

以上是关于从服务器端 C# 的 div 中删除 css的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 和 ASP.NET 从网页中截取 div?

使用 JQuery 从 Div 中删除 CSS

从元素中删除/重置继承的 css

从服务器端c#构建html

从其子 IFRAME 中删除一个 DIV(跨域)

使用c#从服务器端打开页面加载事件的模式弹出窗口