繁体   English   中英

在ASP.NET C#中动态创建定位标记和onServerClick事件

[英]dynamic creation of anchor tags and onServerClick events in asp.net C#

我已经通过从数据库中检索雇员user_id来创建了一个动态的雇员user_id列表,并且它们都是链接或使用定位标记创建的。我已经为其分配了ID和onServerClick事件。但是在单击任何链接时,相应的onServerClick函数没有得到执行。 所以帮忙

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {int id = 0;
            StringBuilder htmltable = new StringBuilder();
            OracleConnection con = new OracleConnection(oradb);
            OracleCommand cmd = new OracleCommand();
            cmd.CommandText = "select USER_ID from Employee";
            cmd.Connection = con;
            con.Open();
            OracleDataReader dr = cmd.ExecuteReader();
            try
            {
                if (dr.HasRows)
                {
                    htmltable.Append("<table style='width:100%'>");
                    htmltable.Append("<tr><td style='text-align:center'><h3>USER ID</h3></td></tr>");
                    while (dr.Read())
                    {

                        htmltable.Append("<tr>");

                        htmltable.Append("<td style='text-align:center'>" + "<a href='' id = '" + (id++) + "' style='text-decoration:none;' runat='server' onServerClick='determine_id_Click'>" + dr["USER_ID"].ToString() + "</a>" + "</td>");


                        // htmltable.Append("<td>" + dr["TEAM"].ToString() + "</td>");

                        htmltable.Append("</tr>");
                    }
                    htmltable.Append("</table>");
                    PlaceHolder1.Controls.Add(new Literal { Text = htmltable.ToString() });
                }
                else
                {

                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }
            finally
            {
                con.Close();
            }

        }
    }

protected void determine_id_Click(object sender, EventArgs e)
    {

            //string id = (sender as Control).ClientID;
            //Response.Write("<script>alert(id)</script>");
        Response.Write("Hi");
    }

像您一样呈现内容时,它将在客户端上呈现。 像这样的超链接在服务器上处理,并且onserverclick被转换为对__doPostBackWebForm_PostBackWithOptions的客户端事件调用,这会导致服务器端回发。 您可以通过添加onclick并调用自己生成此代码。 Page.ClientScript.GetPostBackEventReference

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM