我想把我从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>
答案 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));