无法从Repeater for Function获取数据

时间:2013-07-26 09:27:03

标签: c# asp.net

我想把我从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>

  

2 个答案:

答案 0 :(得分: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()))

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

答案 1 :(得分: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));