2011-12-01 29 views
1

我已在SharePoint創建一個Web部件2010.在CreateChildControls()方法中,我編寫了以下代碼。使用jquery在checkboxlist中添加新複選框並訪問C#代碼中的複選框

Panel pnlPropertyDiv; 
    Button btnEmployee; 
    CheckBoxList plist; 
    CheckBoxList rlist; 
    HtmlGenericControl divleft = new HtmlGenericControl("div"); 
    HtmlGenericControl divmiddle = new HtmlGenericControl("div"); 

    protected override void CreateChildControls() 
    { 


      plist = new CheckBoxList(); 
      plist.ID = "ProjectCheckbox"; 
      plist.Items.Add("p"); 
      plist.Items[0].Attributes.Add("style", "display:none"); 

      rlist = new CheckBoxList(); 
      rlist.ID = "ResourceCheckbox"; 
      rlist.Items.Add("r"); 
      rlist.Items[0].Attributes.Add("style", "display:none"); 

      Panel pnlContainer = new Panel(); 
      pnlContainer.ID = "Project_Container"; 
      this.Controls.Add(pnlContainer); 
      pnlPropertyDiv = new Panel(); 


      divleft.ID = "left"; 
      divleft.Attributes["style"] = "float:left; border-right: 1px solid #E1E3E4;height: 65px;text-align: center;width: 200px;"; 
      pnlPropertyDiv.Controls.Add(divleft); 
      divleft.Controls.Add(plist); 


      divmiddle.ID = "middle"; 
      divmiddle.Attributes["style"] = "float:left; border-right: 1px solid #E1E3E4;height: 65px;text-align: center;width: 200px;"; 
      pnlPropertyDiv.Controls.Add(divmiddle); 
      divmiddle.Controls.Add(rlist); 

      HtmlGenericControl divfooter = new HtmlGenericControl("div"); 
      divfooter.ID = "footer"; 
      divfooter.Attributes["style"] = "text-align: center"; 
      btnEmployee = new Button(); 
      btnEmployee.ID = "btnEmployee"; 
      btnEmployee.Text = "Apply"; 
      btnEmployee.Click += new EventHandler(btnEmployee_Click); 
      divfooter.Controls.Add(btnEmployee); 
      pnlPropertyDiv.Controls.Add(divfooter); 
      pnlPropertyDiv.ID = "EditProperties"; 
      pnlPropertyDiv.Attributes.Add("style", "width: 410px;position:fixed;top:45px;right:18px;z-index:1;color: #6C6E70;font-family: 'Segoe UI',Tahoma,Verdana,sans-serif;font-size: 8pt;"); 
      this.Controls.Add(pnlPropertyDiv); 


    } 

使用jquery我添加新複選框在複選框list.Below是我的按鈕事件代碼。

 project = ""; 
     resource = ""; 
     foreach (ListItem pclist in plist.Items) 
     { 
      if (pclist.Selected == true) 
      { 
       project += pclist.Text; 
      } 
      else 
      { 

      } 
     } 
     foreach (ListItem rclist in rlist.Items) 
     { 
      if (rclist.Selected == true) 
      { 
       resource += rclist.Text; 
      } 
      else 
      { 

      } 
     } 

我的問題是,當我點擊我的按鈕,我不能夠得到它由jquery.Because的CreateChildControls()方法添加總是首先調用並重寫的CheckBoxList控制,更改應用通過jQuery是覆蓋複選框。

注: -

我不能夠使用的IsPostBack,因爲的CreateChildControls()有當必須調用頁面刷新。

回答

0

我不相信你可以在後面的c#代碼中訪問jquery添加的複選框。 jquery複選框將不會被添加到.Net控制樹,因此任何服務器端處理都無法訪問。

你可以用其他方法。在C#中添加一個控件,然後通過JQuery訪問。標準的東西。

你可以把控件放在style =「display:none」設置的div中,然後用JQuery來顯示它。

$('#PanelClientID').show() 

這可能適合你嗎?