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

oJM*_*86o 11 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;" />

Tim*_*ter 10

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

 btnSaveLineItems.Style["display"] = "";
Run Code Online (Sandbox Code Playgroud)

要么

btnSaveLineItems.Style.Remove("display");
Run Code Online (Sandbox Code Playgroud)

编辑:

这对我来说也不起作用......我想知道是不是因为下拉列表框在更新面板内,而且这个按钮在updatepanel之外?

是的,UpdatePanel默认情况下,您只能更新异步回发中的当前内容.最简单的方法是将Button放在另一个中UpdatePanel并添加DropDownListAsyncPostBackTrigger:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 你提供的第一行不能是有效的javascript (2认同)