ASP动态地在桌面上添加按钮,不要在onserverclick上工作

时间:2014-09-02 13:08:58

标签: c# html asp.net

祝你有个愉快的一天。 我尝试创建一个aspx文件,生成带有DB数据的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中(见下文)

从DB读取数据我尝试添加到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();

                }

            }
        }

1 个答案:

答案 0 :(得分:0)

将标记写入父html元素会更好。说一个可以从服务器端访问的div。

不要使用Response.Write