ASP.NET C # - получение кнопки HTML из повторителя - PullRequest
0 голосов
/ 22 марта 2012

У меня есть повторитель, содержащий, помимо прочего, две кнопки. Одна из кнопок является кнопкой ASP.NET, а другая имеет тип "input type =" button "".

Теперь, в моем коде позади, я хочу извлечь обе кнопки из повторителя, чтобы либо скрыть их, либо показать их. Я успешно скрыл кнопку ASP.NET, однако не знаю, как получить другую кнопку.

Вот код в ASP.NET:

<input type="button" name="ButtonEditUpdate" runat="server" value="Edit Update" class="ButtonEditUpdate" />
<asp:Button ID="ButtonDeleteUpdate" CssClass="ButtonDeleteUpdate" CommandName="Delete" runat="server" Text="Delete Update" />

Вот код позади:

protected void RepeaterUpdates_ItemBinding(object source, RepeaterItemEventArgs e)
{
    RepeaterItem item = e.Item;
    TextBox Update_ID = (TextBox)item.FindControl("TextBoxUpdateID_Repeater");
    //Button Edit_Update = (Button)item.FindControl("ButtonEditUpdate");
    Button Delete_Update = (Button)item.FindControl("ButtonDeleteUpdate");

    if (Social_ID == String.Empty)
    {
        //Edit_Update.Visible = false;
        Delete_Update.Visible = false;
    }
}

Как получить кнопку HTML и скрыть ее, поскольку она НЕ является кнопкой ASP.NET?

Ответы [ 3 ]

2 голосов
/ 22 марта 2012

Эта кнопка является элементом управления HTML и будет иметь тип System.Web.UI.HtmlControls.HtmlButton

 System.Web.UI.HtmlControls.HtmlButton button = item.FindControl("ButtonEditUpdate") as System.Web.UI.HtmlControls.HtmlButton;
 if(button!=null)
      button.Visible = false;
0 голосов
/ 22 марта 2012

В общем случае вы не можете прямо получить обычную кнопку HTML, поскольку ASP.NET считает это частью текстовой разметки.К счастью, вы уже добавили runat="server", что делает вашу кнопку серверным элементом управления.

Самый простой способ - использовать элемент управления HtmlButton.Но в вашей разметке вам нужен атрибут id

<input type="button" name="ButtonEditUpdate" runat="server" value="Edit Update" class="ButtonEditUpdate" id="ButtonEditUpdate" />

Затем в коде

//Button Edit_Update = (Button)item.FindControl("ButtonEditUpdate");
HtmlButton Delete_Update = (HtmlButton)item.FindControl("ButtonEditUpdate");
0 голосов
/ 22 марта 2012

Если вы просто хотите установить видимость, вам не нужно ее кастовать.

 var myButton = e.Item.FindControl("ButtonEditUpdate");
 if(myButton != null)
    myButton.Visible = false;

РЕДАКТИРОВАТЬ: вам нужно присвоить кнопке ID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...