2012-07-25 2 views
0

나는 리피터가 있으며 각 항목에는 확인란과 라디오 버튼이 있습니다. (다시 자동 게시물)을 선택하면 포스트 백이있는 리피터

  • 체크 박스

  • 라디오 버튼을 한 번 (다시 또한 자동 게시물) 확인 팝업을 표시 항목 내부의 모든 컨트롤을 비활성화합니다.

사례 : 리피터의 항목에 라디오 버튼이 선택되어있는 경우 체크 박스 컨트롤을 선택하여 항목을 사용 중지하면 팝업이 표시됩니다. 다시 게시하는 동안 라디오 버튼이 선택되면 팝업이 표시됩니다.

어떻게 방지 할 수 있습니까? 확인란은 팝업을 표시하지 않도록 항목을 비활성화해야합니다.

내 코드

protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void rptr1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 


      if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item) 
      { 
       Label lbl1 = (Label)e.Item.FindControl("lbl_dg_task"); 
       Label lbl2 = (Label)e.Item.FindControl("lbl_dg_seq"); 
       CheckBox chb = (CheckBox)e.Item.FindControl("chkb_NO"); 
       RadioButton l1 = (RadioButton)e.Item.FindControl("L1"); 
       RadioButton l2 = (RadioButton)e.Item.FindControl("L2"); 
       RadioButton l3 = (RadioButton)e.Item.FindControl("L3"); 
       RadioButton l4 = (RadioButton)e.Item.FindControl("L4"); 
       RadioButton r1 = (RadioButton)e.Item.FindControl("R1"); 
       RadioButton r2 = (RadioButton)e.Item.FindControl("R2"); 
       RadioButton r3 = (RadioButton)e.Item.FindControl("R3"); 
       RadioButton r4 = (RadioButton)e.Item.FindControl("R4"); 
       AjaxControlToolkit.ModalPopupExtender mpex = (AjaxControlToolkit.ModalPopupExtender)e.Item.FindControl("mpe1"); 

       if (l1.Checked) 
       { 
        //pop.Enabled = true; 
        ModalPopupExtender1.Show(); 
       } 


       if (chb.Checked == true) 
       { 

        l1.Enabled = false; 
        l2.Enabled = false; 
        l3.Enabled = false; 
        l4.Enabled = false; 
        r1.Enabled = false; 
        r2.Enabled = false; 
        r3.Enabled = false; 
        r4.Enabled = false; 
        lbl1.CssClass = "grayedout"; 
        lbl2.CssClass = "grayedout"; 


       } 
       else 
       { 
        l1.Enabled = true; 
        l2.Enabled = true; 
        l3.Enabled = true; 
        l4.Enabled = true; 
        r1.Enabled = true; 
        r2.Enabled = true; 
        r3.Enabled = true; 
        r4.Enabled = true; 
        lbl1.CssClass = "seq"; 
        lbl2.CssClass = "task"; 


       } 
      } 


     } 


    protected void rptr1_PreRender(object sender, EventArgs e) 
    { 

      foreach (RepeaterItem item in rptr1.Items) 
      { 
       if (item.ItemType == ListItemType.AlternatingItem || item.ItemType == ListItemType.Item) 
       { 
        CheckBox chb = (CheckBox)item.FindControl("chkb_NO"); 
        Label lbl1 = (Label)item.FindControl("lbl_dg_task"); 
        Label lbl2 = (Label)item.FindControl("lbl_dg_seq"); 
        RadioButton l1 = (RadioButton)item.FindControl("L1"); 
        RadioButton l2 = (RadioButton)item.FindControl("L2"); 
        RadioButton l3 = (RadioButton)item.FindControl("L3"); 
        RadioButton l4 = (RadioButton)item.FindControl("L4"); 
        RadioButton r1 = (RadioButton)item.FindControl("R1"); 
        RadioButton r2 = (RadioButton)item.FindControl("R2"); 
        RadioButton r3 = (RadioButton)item.FindControl("R3"); 
        RadioButton r4 = (RadioButton)item.FindControl("R4"); 
        AjaxControlToolkit.ModalPopupExtender mpex = (AjaxControlToolkit.ModalPopupExtender)item.FindControl("ModalPopupExtender1"); 


        if (chb.Checked == true) 
        { 
         l1.Enabled = false; 
         l2.Enabled = false; 
         l3.Enabled = false; 
         l4.Enabled = false; 
         r1.Enabled = false; 
         r2.Enabled = false; 
         r3.Enabled = false; 
         r4.Enabled = false; 
         l1.Checked = false; 
         lbl1.CssClass = "grayedout"; 
         lbl2.CssClass = "grayedout"; 

        } 
        else 
        { 
         l1.Enabled = true; 
         l2.Enabled = true; 
         l3.Enabled = true; 
         l4.Enabled = true; 
         r1.Enabled = true; 
         r2.Enabled = true; 
         r3.Enabled = true; 
         r4.Enabled = true; 
         lbl1.CssClass = "seq"; 
         lbl2.CssClass = "task"; 


        } 

        if (l1.Checked) 
        { 

         //pop.Enabled = true; 
         ModalPopupExtender1.Show(); 


        } 

       } 
      } 
     } 
+0

이벤트는 의도 한대로 사용해야합니다. ItemDataBound는 표시되기 전에 데이터를 조작하고, PreRender는 이벤트 핸들러 다음에 오브젝트를 조작하고 이벤트 핸들러는 이벤트를 처리합니다. 리피터 ItemCommand를 사용하여 적절한 표시 논리를 결정하는 것이 좋습니다. –

답변

1

팝업을 보여 주지만, 그것을 보여주기 위해 라디오 버튼의 OnCheckedChanged 이벤트를 사용할지 여부를 결정하는 PreRender 이벤트를 사용하지 마십시오.

l1.CheckedChanged = (sender, e) => { if (l1.Checked) ModalPopupExtender1.Show(); }; 
+0

많은 감사의 말로 문제가 해결되었지만 라디오의 이벤트 핸들러를 먼저 만들어서 Page_Load 이벤트에 삽입해야했습니다. –

+0

이제 또 다른 문제가 있는데, 나는 잘 작동하는 l1을위한 또 다른 팝업을 만들었습니다. –

+0

"잘 작동하는 방법"에 문제가 있습니까? –

관련 문제