ASP.NET C#-正在从Repeater中检索HTML按钮

本文关键字:检索 HTML 按钮 Repeater NET C#- ASP | 更新日期: 2023-09-27 18:28:54

我有一个中继器,其中包含两个按钮。其中一个按钮是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按钮?

ASP.NET C#-正在从Repeater中检索HTML按钮

该按钮是一个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;

通常,您不能直接检索一个普通的旧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");

如果你只想设置可见性,就不需要投射它。

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

编辑:您应该给您的按钮一个ID。