12

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

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;" />

4

3 回答 3

15

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

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

或者

btnSaveLineItems.Style.Remove("display");

编辑

那对我也不起作用...我想知道是不是因为下拉列表框位于更新面板内,而此按钮位于更新面板之外?

是的,默认情况下,您只能UpdatePanel在异步回发中更新当前的内容。最简单的方法是将您的 Button 放在另一个中UpdatePanel并添加DropDownListas 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>
于 2012-06-20T18:15:06.530 回答
2

这有效:

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

添加样式

gv.Style.Remove("top");

删除样式

于 2015-11-21T06:44:11.823 回答
1
btnSaveLineItems.Style["display"] = "block";
于 2012-06-20T18:22:30.453 回答