在asp.net webform

时间:2017-01-17 06:07:57

标签: c# jquery asp.net

我需要从数据库中填充复选框列表,然后在每个复选框旁边我需要添加文本框,以便用户可以在文本框中输入数值。

我还需要在另一个表中保存选中的复选框值

Table Project {Projectid, Name, Details, cDate}

Table ContributionForProject{id, Name, Amount, Projectid, cDate,GUID}

Table TotalContribusion{id, TotalAmount, Projectid, cDate, GUID}

我使用下面的代码填写清单框并在每个选项旁边显示文本框。

为了在数据库中保存价值,我还需要从文本框中获取相应的值。

我有两个问题。

  1. 如何识别每个checbox的projectID,因为我无法通过value选项复选框
  2. 如何获取每个已检查的核对表框和值的值?相关文本框,以便我可以循环播放&保存。
  3. 以下是我正在使用的代码

    public void CreateChecklistWithOption()
        {
            var MyList = new List<ListItem>
            {
                new ListItem("Project One", "1"),
                new ListItem("Project Two", "2"),
                new ListItem("Project Three", "3"),
                new ListItem("Project Four", "4")
            };
    
            Table myTable = new Table();
    
            foreach (var item in MyList)
            {
                //Create new checkbox
                CheckBox CB = new CheckBox();
                CB.Text = item.Text;
                CB.ID = "CB_"+item.Value;
    
    
                //Create tablr row and td, then adds them accordignly
                TableRow TR = new TableRow();
                TableCell TD = new TableCell();
                TD.Controls.Add(CB);
                TR.Controls.Add(TD);
    
                //IF <YOUR FLAG GOES HERE>-->
                //if (item.Value == "2" || item.Value == "1" || item.Value == "3")
                //{
                    //Create your input element and place it in a new Table cell (TD2)
                    TextBox TB = new TextBox();
                    TB.ID = string.Format("tb_{0}", item.Value);
                    TableCell TD2 = new TableCell();
                    TD2.Controls.Add(TB);
                    TR.Controls.Add(TD2);
                //}
    
                myTable.Controls.Add(TR);
            }
    
            phforCheckList.Controls.Add(myTable);
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            Response.Write("<br> Ckeck Box One  " );
            Response.Write("<br> Ckeck Box Two  ");
            Response.Write("<br> Ckeck Box Three  ");
        }
    
    
      <asp:PlaceHolder ID="fillMe" runat="server"></asp:PlaceHolder>
    

1 个答案:

答案 0 :(得分:1)

  1. 使用Checked属性,而不是value
  2. 动态控件通常会添加到WebForms页面的Page_Init事件中,然后您可以在任何需要的地方访问它们。阅读FindControl