将文本从列表视图控制器传递到OnClick Sub VB.Net
问题描述:
有没有办法将文本从列表视图控制器传递到OnClick子例程?例如,列表视图中有一个标签,我在列表视图中附加了一个按钮,并在其上附加了一个OnClick子例程。现在我想将标签中的文本传递给OnClick子例程。我希望这是有道理的。楼下是我的代码:将文本从列表视图控制器传递到OnClick Sub VB.Net
VB.Net代码:
Protected Sub AmButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim url As String = CType(Me.AmListViewDetails.FindControl("merchantLink"), Label).Text
Dim sb As New StringBuilder()
sb.Append("<script type = 'text/javascript'>"_
sb.Append("window.open('")
sb.Append(url)
sb.Append("');")
sb.Append("</script>")
ClientScript.RegisterStartupScript(Me.GetType(), "script", sb.ToString())
End Sub
ASP.Net:
<asp:ListView runtat="server" ID="AmListViewDetails" ...>
<ItemTemplate>
<table runat="server">
<tr runat="server">
<td runat="server">
<asp:Label ID="merchantLink" runat="server" Text='<%Eval("Link")%>' />
</td>
</tr>
<tr runat="server">
<td runat="server">
<asp:Button ID="AmBtn" runat="server" Text="Checkout" OnClick="AmButtonClick"/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:ListView>
答
一个CommandArgument
属性添加到按钮。这将是传递给事件处理程序的值。您不需要OnClick
属性。
<asp:Button ID="AmBtn" runat="server" Text="Checkout" CommandArgument="???" />
事件处理程序将
Sub AmListViewDetails_ItemCommand(object sender, ListViewCommandEventArgs e)
Dim valuePassedFromListView = Cstr(e.CommandArgument)
End Sub
+0
谢谢。这工作。 – Kluong
检索'Link'字段的值,最好的办法是到该字段添加到ListView的'DataKeyNames'财产。该方法在这里解释:http://stackoverflow.com/questions/36813634/how-to-retrieve-the-value-of-a-listview-item-in-the-same-row-as-a-linkbutton/ 36814031#36814031。 – ConnorsFan