[英]ASP adding button on a table dynamically, don't working onserverclick
祝你今天愉快。 我尝试创建一个aspx文件,该文件使用来自数据库的数据生成html表。 HTML表格包含4列(第一列-行数,第二列在行中包含相同的值,因此我使用rowspan()联接行,第三列使用某些值,第四列-按钮)
建立表格
foreach (var group in grouped)
{
j++;
int k = 1;
group.Count().ToString();
%>
<%
Response.Write("<tr><td rowspan=" + group.Count().ToString() + "\">" + j + "</td>");
Response.Write("<td rowspan=" + group.Count().ToString() + "\">" + group.Key.ToString() + "</td>");
foreach (var innerlist in group)
{
if (k == 1)
{
Response.Write("<td>" + innerlist[0] + "</td>" );
}
if (k != 1)
{
Response.Write("<tr>" + "<td>" + innerlist[0] + "</td>" );
}
Response.Write("<td > <button id=\"some_id1\" onserverclick=\"doit\" runat="server" > кнопка </button> </td> </tr>");
k++;
}
在我创建的脚本部分
<script runat="server">
protected void doit(Object sender, EventArgs e)
{
ViewState["count"] = Convert.ToInt32(ViewState["count"]) + 1;
Span1.InnerHtml = "You clicked Button1 " + ViewState["count"].ToString();
}
</script>
当我单击html中的按钮时,什么都没发生,怎么了? ViewState包含在Page_Load中(请参见下文)
从数据库读取数据,我尝试添加到Page_Load中,但是在标签正文中没有array_list_result。 如何解决?
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["Count"] = 0;
List<List<string>> array_list_result = new List<List<string>>();
DataObjectList LotPhisParam = Session.Land_LotPhisParameters.Query("<Object/>", "ObjectID <> '' AND ObjectID IS NOT NULL");
// LotPhisParam.ToArray().GroupBy;
for (Int32 i = 0; i < LotPhisParam.Count; i++)
{
List<string> temp_string = new List<string> { LotPhisParam[i].Id.ToString(), LotPhisParam[i].GetLink("Object").Id.ToString() };
array_list_result.Add(temp_string);
// LotPhisParam[i].Delete();
// Session.Commit();
}
}
}
最好将标记写入父html元素。 说一个div,您可以从服务器端访问它。
不要使用Response.Write
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.