如何通过Asp.net ListView中的命令参数传递多个值?

时间:2017-05-04 09:33:45

标签: asp.net vb.net visual-studio

我正在尝试通过listview中的命令参数标记传递多个值。这里的所有问题都是指GridView而不是listview(我不确定它是否有所作为)。我收到输入字符串格式不正确的错误。

我的代码是:

ASPX:

<asp:Button runat="server" Text="View Details" CssClass="button" CommandName="ViewApplicationDetails" CommandArgument='<%# Eval("id") + "|" + Eval("email") + "|" + Eval("application_hash")%>'/>

VB.NET:

Private Sub ListView1_ItemCommand(sender As Object, e As ListViewCommandEventArgs) Handles ListView1.ItemCommand
    If e.CommandName = "ViewApplicationDetails" Then
        Dim strAttributes As String()

        strAttributes = e.CommandArgument.ToString().Split("|")
        'Do something 
    End If
End Sub

2 个答案:

答案 0 :(得分:1)

在VB.Net中,字符串串联“+”有时可能不可靠。有关讨论,请参阅此thread。那可能就是你所面对的。要尝试的是“&amp;”操作者:

Eval("id") & "|" & Eval("email") & ...

或String.Format(可读性提升免费):

String.Format("{0}|{1}|{2}", Eval("id"), Eval("email"), ...)

答案 1 :(得分:0)

请你试试这个

String.Format方法:

CommandArgument =&#39;&lt;%#String.Format(&#34; {0} {1} {2}&#34;,DataBinder.Eval(Container,&#34; DataItem.id&#34 ;),DataBinder.Eval(Container,&#34; DataItem.email&#34;),DataBinder.Eval(Container,&#34; DataItem.application_hash&#34;))%&gt;&#39;

请告诉我您是否能够解决。