0

我已经在 StackOverflow 上寻找其他解决方案,但我似乎无法弄清楚。我在数据网格中有这个链接按钮:

    <asp:LinkButton 
        ID="lnkname" runat="server"
        Text='<%#Eval("Titel") %>'
        PostBackUrl='<%#"Details.aspx?ID="+Eval("ID").toString()%>'
        CausesValidation="false">
    </asp:LinkButton>

这是参数:

<asp:ControlParameter ControlID="txtTitel" DefaultValue="*" Name="Titel" 
PropertyName="Text" Type="String" ConvertEmptyStringToNull="False" />

我想将 ID 值带到下一页: details.aspx 但我收到以下错误:

输入字符串的格式不正确。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

Exception Details: System.FormatException: Input string was not in a correct format.

我知道这与 ID 是一个 INT 有关,但我不知道如何解决它。

注意:我在 VB.NET 中做

4

2 回答 2

2

将其转换为字符串存在问题

+Eval("ID").toString()

用这个

PostBackUrl='<%# "Details.aspx?ID="+Eval("ID").ToString() %>'

.toString()应该是ToString()

编辑 1

或者你可以使用

Try using a HyperLinkField

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.hyperlinkfield.aspx

<asp:HyperLinkField
                 HeaderText="Client IP"
                 DataNavigateUrlFields="IP"
                 DataNavigateUrlFormatString="Details.aspx?id={0}"
                 DataTextField="ID"
                 DataTextFormatString="{0}"/>
于 2013-04-09T09:00:49.630 回答
0

如果您需要传递多个参数,那么您可以&在它们之间使用例如

PostBackUrl='<%# "Details.aspx?ID="+Eval("ID")+"&x=50" %>'

重要的

每当您将任何类型的变量(如值)连接(连接)到Eval("ID")字符串(如 我确信这种行为和"Details.aspx?ID="ToString()C#VB.NET

所以你可以简单地写

PostBackUrl='<%# "Details.aspx?ID="+Eval("ID") %>'
于 2013-04-09T09:31:51.260 回答