显示无/删除样式后面的asp.net代码无效

时间:2012-06-20 18:12:32

标签: asp.net

我的代码后面的代码中有一个按钮,我这样做:

btnSaveLineItems.Style.Add("display", "none");

但后来我想显示那个按钮,所以我尝试了这个:

btnSaveLineItems.Style.Clear();

这似乎不会显示按钮... 开头的html标记有一个“style = display:none;”在页面的开头.. 即使我尝试删除它,它仍保持这种风格?

任何人都可以帮忙...

当我的页面第一次启动时,我有这个:

btnSaveLineItems.Style["display"] = "none";

这在HTML中呈现如下:

<input type="submit" name="ctl00$MainContent$btnSaveLineItems" value="Save" id="MainContent_btnSaveLineItems" title="Save changes?" style="border-color:#4B6C9E;border-style:Solid;display:none;" />

然后发生一个事件(选择索引更改了下拉框的事件),然后我执行此操作:

btnSaveLineItems.Style["display"] = "";

我也试过了:

btnSaveLineItems.Style [“display”] =“block”;

并且都呈现相同的HTML:

<input type="submit" name="ctl00$MainContent$btnSaveLineItems" value="Save" id="MainContent_btnSaveLineItems" title="Save changes?" style="border-color:#4B6C9E;border-style:Solid;display:none;" />

3 个答案:

答案 0 :(得分:10)

您可以通过以下方式删除该样式:

 btnSaveLineItems.Style["display"] = "";

btnSaveLineItems.Style.Remove("display");

修改

  

这对我来说也不起作用......我想知道是不是因为掉落了   下拉列表框位于更新面板内,此按钮位于外部   更新面板?

是的,默认情况下,您只能在异步回发中更新当前UpdatePanel的内容。最简单的方法是将您的按钮放在另一个UpdatePanel中,并将DropDownList添加为AsyncPostBackTrigger

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlChanged">
        <asp:ListItem Text="Item 1" Value="1"></asp:ListItem>
        <asp:ListItem Text="Item 2" Value="2"></asp:ListItem>
    </asp:DropDownList>
     </ContentTemplate>
    </asp:UpdatePanel>

     <asp:UpdatePanel ID="UpdatePanel2" runat="server">
    <ContentTemplate>
        <asp:Button ID="btnSaveLineItems" Text="click me" runat="server" />
     </ContentTemplate>
     <Triggers>
        <asp:AsyncPostBackTrigger ControlID="DropDownList1" />
     </Triggers>
    </asp:UpdatePanel>

答案 1 :(得分:1)

btnSaveLineItems.Style["display"] = "block";

答案 2 :(得分:1)

这有效:

gv.Style.Add(HtmlTextWriterStyle.Top, "-44px");

添加样式

gv.Style.Remove("top");

删除样式