[英]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
被转换为对__doPostBack
或WebForm_PostBackWithOptions
的客户端事件调用,这会导致服务器端回发。 您可以通过添加onclick
并调用自己生成此代码。 Page.ClientScript.GetPostBackEventReference 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.