【问题标题】:How to pass multiple values through command argument in Asp.net ListView?如何通过 Asp.net ListView 中的命令参数传递多个值?
【发布时间】:2017-05-04 09:33:45
【问题描述】:

我正在尝试通过列表视图中的命令参数标记传递多个值。这里的所有问题都是指 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

【问题讨论】:

  • 乍一看还不错。哪一行抛出错误?
  • 包含asp按钮的行。错误是“System.FormatException:输入字符串的格式不正确。”当我在命令参数中保留一个值时,它工作正常

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


【解决方案1】:

在 VB.Net 中,带有“+”的字符串连接有时可能不可靠。请参阅此thread 进行讨论。这可能就是你所面临的。可以尝试的是“&”运算符:

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

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

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

【讨论】:

  • 谢谢安德烈。我所要做的就是使用“&”而不是“+”
【解决方案2】:

你可以试试这个

String.Format 方法:

CommandArgument=''

请让我知道你是否能够修复。

【讨论】:

    猜你喜欢
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 2012-11-27
    • 2013-03-10
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多