Показать нет/удалить стиль для кода 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;" />

Ответ 1

Вы можете удалить этот стиль таким образом:

 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>

Ответ 2

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

Ответ 3

это работает:

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

чтобы добавить стиль

и

gv.Style.Remove("top");

удалить стиль