繁体   English   中英

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

[英]ASP.NET C# - Retrieving HTML Button from Repeater

我有一个转发器,其中包含两个按钮。 其中一个按钮是ASP.NET按钮,而另一个按钮是“input type =”按钮“”。

现在,在我的代码隐藏中,我想从转发器中检索两个按钮,以隐藏它们或显示它们。 我已经成功隐藏了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按钮?

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

如果您只想设置可见性,则不需要进行投射。

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

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

通常,您无法直接检索普通的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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM