2015-04-01 41 views
0

我有一个具有内嵌CSS,其知名度是隐藏从DIV服务器端的C#删除CSS

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

我在GridView控件按钮,在点击其中的我想删除的知名度CSS div标签上面的div

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仍然显示为隐藏。你能帮我解决吗?

+0

按钮调用回发? – Peyman 2015-04-01 05:49:24

+0

没有按钮不是回发 – 2015-04-01 06:05:08

回答

0

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

SecondGrid.Visible = true; 

对于上述方案,你需要改变你的HTML标记来follwing

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

但如果你想继续与您的标记,你也可以使用HtmlTextWriterStyle

SecondGrid.Style.Remove(HtmlTextWriterStyle.Visibility); 
+0

没有它仍然无法正常工作。我认为在'GridView1_RowCommand'函数中不能改变css。 :( – 2015-04-01 06:12:03

+0

是的,如果没有回传,那么它将无法工作 – 2015-04-01 06:14:59

+0

你调试的代码,当点击按钮去那条线设置可见为真? – Peyman 2015-04-01 06:15:18

0

力去除风格找到了为什么没有一个CSS样式变更不在'GridView1_RowCommand'下工作的原因,但找到了解决方案。只是想分享。

已经把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从股利

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> 

及其工作。感谢很多人的帮助..