如何使用ASP.NET获取数据属性?

时间:2019-01-09 20:19:30

标签: asp.net vb.net

我似乎找不到与我遇到的问题有关的任何东西。

目标

我试图从单击按钮时在代码隐藏中创建的按钮(Web控件)获取自定义数据属性的值。我引用的是MSDN-Attribute.GetCustomAttribute Method,但不确定是否适合我要尝试的操作。

我当前的单击子位于下面,但不起作用。

Default.ascx

<asp:UpdatePanel ID="itemWrapper" UpdateMode="Conditional" runat="server">
  <ContentTemplate>
    <asp:PlaceHolder ID="itemsPlaceholder" runat="server" />
  </ContentTemplate>
</asp:UpdatePanel>

Default.ascx.vb(隐藏代码)

Protected Sub Items_Load()
  Dim dynamicID = "13"
  Dim itemBtn = New Button()
      itemBtn.Attributes.Add("data-custom-id", dynamicID) '<- Custom attribute I want to get
      itemBtn.UseSubmitBehavior = False
      itemBtn.Text = "select"
      itemBtn.ID = "Button_" & dynamicID
      AddHandler itemBtn.Click, AddressOf ItemSelectBtn_Click
      itemsPlaceholder.Controls.Add(itemBtn) 
End Sub

Public Sub ItemSelectBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
  Dim clickedBtn = DirectCast(sender, Button),
      clickedBtnID As String = clickedBtn.Attributes("data-custom-id")

      Console.WriteLine("this button's ID is " & clickedBtnID)
End Sub

HTML输出

<div id="Content_C001_itemWrapper">
  <input type="button" 
   name="ctl00$Content$C001$1"
   value="select"
   onclick="target = '_blank';__doPostBack('ctl00$Content$C001$1','')"
   data-custom-id="13">
</div>

更新

这是最简单的答案。不确定为什么这不起作用,但是正如@zgood建议获取属性。 VB.NET使用Attributes("attribute-name"),而不像C#中那样使用Attributes["attribute-name"]。仅供参考。

感谢您的帮助!

0 个答案:

没有答案