0

我想把我从Repeater( container.DataItem )得到的数据作为参数。这是我尝试过的:

protected String getLink(string CustId)
{
string link = "";
if (Request.QueryString["mode"] != null)
{
    link = "~/CustDetails.aspx?id="+CustId;
}
else
{

}
return link;
}

这是我的“HTML”

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<a href='<%# Response.Write(getLink(Eval(Container.DataItem,"CustId")))%>'>
<li><%# DataBinder.Eval(Container.DataItem,"Name")%></li>

4

2 回答 2

2

你得到The best overloaded method match for '' has some invalid arguments错误是因为你的函数string作为参数,你给它object-Eval()函数返回一个object. 您可以使用

protected String getLink(object CustId)

稍后将其转换为字符串,或者更好的方法:

Response.Write(getLink(Eval(Container.DataItem,"CustId").ToString()))

这样你就可以保持你的功能不变。

于 2013-07-26T09:37:31.650 回答
0

您应该在中继器内使用链接按钮

<asp:LinkButton ID ="asd" runat ="server" Text ='<%# DataBinder.Eval(Container.DataItem,"Name")%>' CommandArgument ='<%# Eval(Container.DataItem,"CustId")%>'></asp:LinkButton>

并设置中继器的 OnItemCommand 属性来调用这样的事件;

Response.Redirect("~/CustDetails.aspx?id="+Convert.toInt32(e.commandArgument));
于 2013-07-26T09:32:53.020 回答