繁体   English   中英

ASP在表上动态添加按钮,在服务器上不起作用

[英]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.

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