ASP.NET Repeater里有个 LinkButton 如何调用后台 带参数的方法

<asp:LinkButton runat="server" ID="lbMore" OnClick="btnSave_Click" CommandArgument='<%#Eval("user_NM") %>'>加关注</asp:LinkButton>
后台
protected void btnSave_Click(object sender, EventArgs e)
{ RepeaterCommandEventArgs b = (RepeaterCommandEventArgs)e;
Object nm = b.CommandArgument;
addfriend(nm);
}
public void addfriend(Object nm)
{

一楼思路正确,代码写的有点小问题,呵呵

添加关注:
<asp:LinkButton ID="lbMore" EnableViewState="True" runat="server" Visible="false" CommandName="More" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"绑定你要加关注的用户ID")%>'
OnClientClick="return confirm('确定要关注该好友吗?');" Style="color: Blue">[添加关注]</asp:LinkButton>
取消关注 :
<asp:LinkButton ID="lbUnMore" EnableViewState="True" runat="server" Visible="false" CommandName="UnMore" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"绑定你要加关注的用户ID")%>'
OnClientClick="return confirm('确定要取消关注该好友吗?');" Style="color: Blue">[取消关注]</asp:LinkButton>
后台写你的操作:
protected void rpt_ItemCOmmand(object sender, RepeaterCommandEventArgs e)
{
switch (e.CommandName)
{
case "More":
{
//TODO:添加关注
break;
}
case "UnMore":

//TODO:取消关注
break;

}
}
最后控制两个控件的显示和隐藏:
protected void rpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
取到对象 如 Info
if (info != null)
{
(e.Item.FindControl("lbMore") as LinkButton).Visible = !info.是否已经关注;
(e.Item.FindControl("lbUnMore") as LinkButton).Visible = info.是否已经关注;
}
}
}
OK ,好运
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-16
不是添加Onclick事件哈。你需要在你的Repeater上添加OnItemCommand事件
如:<asp:Repeater OnItemCommand="rpt_ItemCommand" ...
然后为你的LinkButton添加CommandName属性 :
<asp:LinkButton runat="server" ID="lbMore" OnClick="btnSave_Click" CommandArgument='<%#Eval("user_NM") %>' CommandName="Save">加关注</asp:LinkButton>
之后在后台
protected void rpt_ItemCOmmand(object sender, RepeaterCommandEventArgs e)
{
switch (e.CommandName)
{
case "Save":
//TODO:添加关注

break;
}
}
第2个回答  2011-02-16
1、写一个方法带参数的
2、给Repeater添加ItemCommand事件;然后引用方法
相似回答