2013-02-25 47 views
0

我在更新面板中使用5個單選按鈕,但是當我檢查第一次單選按鈕時,它不會檢查其更改。之後又意味着第二次檢查它的工作正常,所以請告訴應該是什麼問題。 這裏是我的代碼Autopostback在ASP.NET中第一次不工作?

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:RadioButton ID="rbtn_A" runat="server" GroupName="rbt" 
      AutoPostBack="true" OnCheckedChanged="rbtn_A_CheckedChanged" /> 
     <asp:RadioButton ID="rbtn_B" runat="server" GroupName="rbt" AutoPostBack="true" 
      OnCheckedChanged="rbtn_B_CheckedChanged" /> 
     <asp:RadioButton ID="rbtn_C" runat="server" GroupName="rbt" AutoPostBack="true" 
      OnCheckedChanged="rbtn_C_CheckedChanged" /> 
     <asp:RadioButton ID="rbtn_D" runat="server" GroupName="rbt" AutoPostBack="true" 
      OnCheckedChanged="rbtn_D_CheckedChanged" /> 
    </ContentTemplate> 

這是我的第一個單選按鈕的C#功能: 保護無效rbtn_A_CheckedChanged(對象發件人,EventArgs的) {

 foreach (GridViewRow gv in dl_ques.Rows) 
     { 
      Label lblTest = (Label)gv.FindControl("lbltest"); 
      Label lbl = (Label)gv.FindControl("lbl_qno"); 
      RadioButton rbtn_A = (RadioButton)gv.FindControl("rbtn_A"); 
      DataSet ds = new DataSet(); 
      ds = getAnswer(); 
      SqlCommand cmd1 = DataManager.getCommandSp("spGetIBPSTestQues"); 
      cmd1.Parameters.AddWithValue("@Test_id", Convert.ToInt32(lblTest.Text)); 
      DataSet dsorg = DataManager.getDataSet(cmd1); 
      if (ds.Tables[0].Rows.Count > 0) 
      { 
       SqlCommand cmd = new SqlCommand(); 
       cmd = DataManager.getCommandSp("SpUpdateIBPSTestSolved"); 
       cmd.Parameters.AddWithValue("@user_id", Convert.ToInt32(ht["UId"])); 

       cmd.Parameters.AddWithValue("@Ans", "A"); 
       foreach (DataRow dr in dsorg.Tables[0].Rows) 
       { 
        if (Convert.ToInt32(lbl.Text) == Convert.ToInt32(dr["actual_que"])) 
        { 
         if (dr["actual_ans"].ToString() == "A") 
         { 
          cmd.Parameters.AddWithValue("@Ans_correct", "Yes"); 
         } 
         else 
         { 
          cmd.Parameters.AddWithValue("@Ans_correct", "No"); 
         } 
        } 
       } 
       cmd.Parameters.AddWithValue("@test_id", Convert.ToInt32(lblTest.Text)); 
       cmd.Parameters.AddWithValue("@Test_dt", DateTime.Now); 
       cmd.Parameters.AddWithValue("@Ques_id", lbl.Text); 
       cmd.Parameters.AddWithValue("@LastTimeMin", timehdnmin.Value); 
       cmd.Parameters.AddWithValue("@LastTimeSec", timehdnsec.Value); 

       DataManager.WriteToDb(cmd); 

      } 
      else 
      { 
       SqlCommand cmd = new SqlCommand(); 
       cmd = DataManager.getCommandSp("SpInsertIBPSTestSolved"); 
       cmd.Parameters.AddWithValue("@user_id", Convert.ToInt32(ht["UId"])); 

       cmd.Parameters.AddWithValue("@Ans", "A"); 
       foreach (DataRow dr in dsorg.Tables[0].Rows) 
       { 
        if (Convert.ToInt32(lbl.Text) == Convert.ToInt32(dr["actual_que"])) 
        { 
         if (dr["actual_ans"].ToString() == "A") 
         { 
          cmd.Parameters.AddWithValue("@Ans_correct", "Yes"); 
         } 
         else 
         { 
          cmd.Parameters.AddWithValue("@Ans_correct", "No"); 
         } 
        } 
       } 

       cmd.Parameters.AddWithValue("@test_id", Convert.ToInt32(lblTest.Text)); 
       cmd.Parameters.AddWithValue("@Test_dt", DateTime.Now); 
       cmd.Parameters.AddWithValue("@Ques_id", lbl.Text); 
       cmd.Parameters.AddWithValue("@LastTimeMin", timehdnmin.Value); 
       cmd.Parameters.AddWithValue("@LastTimeSec", timehdnsec.Value); 

       DataManager.WriteToDb(cmd); 
      } 
     } 
    } 
+0

但後來,一切都運行試試呢? – c0dem0nkey 2013-02-25 06:08:25

+0

我在網格視圖中使用這些單選按鈕。但第一次有問題。我查了一切,但不明白是什麼問題。 – 2013-02-25 06:12:03

+0

請顯示您的rbtn_A_CheckChanged函數 – 2013-02-25 06:16:02

回答

0

你需要做一個單選按鈕checked默認爲頁面加載時爲true

基於10

對你說的這個

if(!Page.IsPostback) 
{ 
    rbtn_A.Checked = true; 
} 
+1

根據我的功能,我不能這樣做,因爲它的在線檢查相關,我需要全部檢查假 – 2013-02-25 06:22:32

+0

如果我第一次檢查任何單選按鈕,它不檢查斷點上檢查更改事件。但第二次其工作正常去相關檢查 – 2013-02-25 06:26:51

+0

這些單選按鈕在網格視圖 – 2013-02-25 06:29:54

0

將所有單選按鈕,Checked=False;可能它會幫助你

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
    <asp:RadioButton ID="rbtn_A" runat="server" GroupName="rbt" 
     AutoPostBack="true" OnCheckedChanged="rbtn_A_CheckedChanged" Checked="False" /> 
    <asp:RadioButton ID="rbtn_B" runat="server" GroupName="rbt" AutoPostBack="true" 
     OnCheckedChanged="rbtn_B_CheckedChanged" Checked="False"/> 
    <asp:RadioButton ID="rbtn_C" runat="server" GroupName="rbt" AutoPostBack="true" 
     OnCheckedChanged="rbtn_C_CheckedChanged" Checked="False"/> 
    <asp:RadioButton ID="rbtn_D" runat="server" GroupName="rbt" AutoPostBack="true" 
     OnCheckedChanged="rbtn_D_CheckedChanged" Checked="False"/> 
</ContentTemplate>