Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中修改表_C#_Asp.net - Fatal编程技术网

C# 在asp.net中修改表

C# 在asp.net中修改表,c#,asp.net,C#,Asp.net,我正在尝试获取一个应用程序,允许用户为数字行选择一些内容,然后在用户提交表单后在服务器端执行一些操作。我遇到的问题是,如果我重新加载表,我只会得到默认值,如果我没有,表是空的。代码如下: <asp:Table ID="tbl" runat="server"> <asp:TableRow> <asp:TableHeaderCell>Question</asp:TableHeaderCell>

我正在尝试获取一个应用程序,允许用户为数字行选择一些内容,然后在用户提交表单后在服务器端执行一些操作。我遇到的问题是,如果我重新加载表,我只会得到默认值,如果我没有,表是空的。代码如下:

    <asp:Table ID="tbl" runat="server">
        <asp:TableRow>
            <asp:TableHeaderCell>Question</asp:TableHeaderCell>
            <asp:TableHeaderCell>Answer</asp:TableHeaderCell>
        </asp:TableRow>
    </asp:Table>
c:


我只需要制作一个问题列表并将它们数据绑定到repeater/gridview/datagrid,正如@Cybernate所说的那样,然后将事件方法添加到databinder的OnItemDataBound中

在ItemDataBound事件中,我将获得每个问题DataItem的答案列表,并将它们添加到DropDownList中,就像上面所做的那样


当用户填写所有答案时,您只需浏览Request.Form数组并找到所有将要传回的答案。

您的问题在于asp.net处理动态控件的复杂方式,您需要在page init上创建动态控件,在设置视图状态以便在post上维护控件的状态之前,请参阅本文


您应该定义查看gridview或至少一个repeater控件。

您将表存储在ViewState中,并根据需要使用它。

为什么不使用gridview或DataGrid?这对您的PRBLM来说是一个更好的解决方案问题是,即使我尝试在init中打印tbl.row.count,我也只获取硬编码的值,而不是动态创建的值,因此它总是返回1。在init中,控件状态没有从viewstate更新,如果您在save button click事件中执行tbl.row.count,则控件状态将正确设置。当我尝试将表添加到viewstate时,我不断收到序列化异常
    protected System.Web.UI.WebControls.Table tbl1;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            init_tbl();
        }
    }
    protected void init_tbl()
    {
        tbl1.BorderWidth = 1;
        TableRow tr = new TableRow();
        tc = new TableCell();
        tc.Text = "text";
        tc.BorderWidth = 1;
        tr.Cells.Add(tc);

    ddl = new DropDownList();
    ddl.ID = "r" + index;
    ddl.Attributes["runat"] = "server";

    ListItem item;
    for (int i = 1; i <= 10; i++)
    {
         item = new ListItem();
         item.Text = i.ToString();
         item.Value = i.ToString();
         if (i.ToString().Equals(r.Trim()))
         {
             item.Selected = true;
          }
          ddl.Items.Add(item);
      }      
      list.Add(ddl);
      tc.Controls.Add(ddl);

      tc.ID = "tblr" + index;
      tr.Cells.Add(tc);

      tbl1.Rows.Add(tr);
    }