我在StackOverflow上寻找其他解决方案,但我似乎无法弄明白。 我在datagrid中有这个linkbutton:
<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有关,但是我无法弄清楚如何修复它。
注意:我在VB.NET中这样做
答案 0 :(得分:2)
将其转换为字符串
时出现问题+Eval("ID").toString()
使用此
PostBackUrl='<%# "Details.aspx?ID="+Eval("ID").ToString() %>'
.toString()
应为ToString()
或者您可以使用
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}"/>
答案 1 :(得分:0)
如果您需要传递多个参数,则可以在它们之间使用&
例如
PostBackUrl='<%# "Details.aspx?ID="+Eval("ID")+"&x=50" %>'
重要强>
每当您将Eval("ID")
值之类的任何类型的变量连接(加入)到"Details.aspx?ID="
之类的字符串时,您不需要编写ToString()
进行强制转换,因为连接会进行此转换隐含地(自动地)。我确定C#
和VB.NET
所以你可以写简单
PostBackUrl='<%# "Details.aspx?ID="+Eval("ID") %>'