2017-01-17 7 views
0

データベースからチェックボックスリストを入力する必要があります。各チェックボックスの隣にテキストボックスを追加して、テキストボックスに数値を入力できるようにします。asp.net webformのチェックボックスリストオプションの隣にテキストボックスを動的に追加します

また、私はcheckedlistボックスを埋めるために、コードの下に使用して、次のテキストボックスを示しています

Table Project {Projectid, Name, Details, cDate}

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

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

別のテーブルでチェックし、チェックボックスの値を保存する必要があります各オプション。

データベースに値を保存するには、テキストボックスから対応する値も取得する必要があります。

私はこれに2つの問題があります。私は、チェックボックス

  • ためvalueオプションを渡すことはできませんよう

    1. は、どのように私はどのように私は&をループを保存することができるように、それぞれの値は、関連するテキストボックスchecklistbox &を確認得ることができ、各checboxためPROJECTIDを識別することができます。以下は

  • は私が

    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
    1. 使用Checked属性ではなく、valueで働いていたコードです。
    2. 通常、ダイナミックコントロールはWebフォームページのPage_Initイベントに追加され、必要な場所にアクセスできます。 FindControlについて読む
    関連する問題