我已经通过从数据库中检索员工user_ids创建了一个动态列表,并且所有这些都是链接或者是使用锚标签创建的。我已经为他们分配了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");
}
答案 0 :(得分:0)
当内容以您正在呈现的方式呈现时,它会在客户端上呈现。这样的超链接在服务器上处理,onserverclick
转换为对__doPostBack
或WebForm_PostBackWithOptions
的客户端事件调用,这会导致服务器端回发。您可以通过添加onclick
并致电来自行生成此内容。 Page.ClientScript.GetPostBackEventReference