日期:2014-05-17  浏览次数:20488 次

后台拼接多个linkbutton的onclick事件。

str.Append("<li><asp:LinkButton ID=\"lnk_favourite\" runat=\"server\" CommandArgument=\"" + dt.Rows[i]["user_ID"].ToString() + "\" onclick=\"lnk_favourite_Click\" OnClientClick=\"return confirm('确定进行收藏?');\">加入收藏</asp:LinkButton></li>");

        protected void lnk_favourite_Command(object sender, CommandEventArgs e)
        {
            //protected void lnk_favourite_Click(object sender, EventArgs e)
            //{
            string bID = ((LinkButton)sender).CommandArgument;//得到被收藏人的ID
            int sID = 0;
            if (Request.Cookies["user_ID"] != null)
            {
                sID = Convert.ToInt32(Request.Cookies["user_ID"].Value.ToString());
            }
            KKModle_Model.Kk_Favourite fav = new KKModle_Model.Kk_Favourite();
            fav.fav_ID = 0;
            fav.bID = Convert.ToInt32(bID);
            fav.sID = sID;
            int res = favBLL.favguanli(fav, 1);
            if (res > 0)
            {
                co.dialog(this, "收藏成功!");
                return;
            }
        }




现在的问题是不掉用onclick事件,原因是页面未进行编译。
.net?linkbutton? .net linkbutton onclick

------解决方案--------------------
用字符串方式不能添加服务器控件的,只能添加HTML控件,想动态添加的话就new一个控件出来吧
------解决方案--------------------
只是当普通的字符串处理掉了,根本就没有执行服务端控件的渲染。Viewsate没有关于linkbutton和相关Command的状态记录。
按楼上说的动态创建linkbutton,然后用CommandEventHandler方法注册触发事件。
具体做法参看:
http://www.jb51.net/article/19161.htm
------解决方案--------------------
利用.NET 的html服务器控件添加