2013-10-18 51 views
0

我有一个网格视图,当我点击radiobutton批准它应该更新推荐标记值为1基于employeeID.However但我收到一个错误,说该对象未设置为一个对象的实例..我的列也被添加到左侧..代替正确..下面是我试过的代码。在gridview中向右添加列

C#代码

public void GridViewBind() 
     { 
      dadapter = new SqlDataAdapter("SELECT M_Emp_Personal.EmpName, M_Division.DivShort, M_Designation.DesigShort, T_TADA_tempform.BasicSalary, T_TADA_tempform.GPFNo, T_TADA_tempform.Gradepay,T_TADA_tempform.move_date, T_TADA_tempform.purpose, M_City.CityDesc, T_TADA_tempform.estt_visited, T_TADA_tempform.duration_stay, M_mode.mode_type, T_TADA_tempform.duration_unit, T_TADA_tempform.place, T_TADA_tempform.authority, T_TADA_tempform.exp_debited, T_TADA_tempform.reason FROM T_TADA_tempform INNER JOIN M_Emp_Personal ON T_TADA_tempform.EmpID = M_Emp_Personal.EmpID INNER JOIN M_Division ON T_TADA_tempform.DivisionID = M_Division.DivisionID INNER JOIN M_Designation ON M_Emp_Personal.DesigID = M_Designation.DesigID INNER JOIN M_City ON T_TADA_tempform.CityID = M_City.CityID INNER JOIN M_mode ON T_TADA_tempform.mode_ID = M_mode.mode_ID where M_Emp_Personal.EmpID=" + ddlname.SelectedValue + "", conn); 
      dset = new DataSet(); 
      dadapter.Fill(dset); 
      GridView1.DataSource = dset.Tables[0]; 
      GridView1.DataBind(); 
     } 


protected void submit_info(object sender, EventArgs e) 
     { 


      GridViewRow grow = (GridViewRow)(sender as Control).Parent.Parent; 

      RadioButton rbpApprove = (RadioButton)grow.FindControl("rbtnapprove"); 
      RadioButton rbpReject = (RadioButton)grow.FindControl("rbtnreject"); 



      if (rbpApprove.Checked == true) 
      { 
       conn.Open(); 
       SqlCommand cmd = new SqlCommand("UPDATE T_TADA_tempform SET Recommened_tag =1 where [email protected]", conn); 

       cmd.Parameters.AddWithValue("@EmpID", ddlname.SelectedValue); 

       conn.Close(); 

      } 

这是我的ASP.NET代码

<asp:GridView ID="GridView1" runat="server" CssClass="vutblrow" TabIndex="6" 
CellPadding="4" ForeColor="#333333" GridLines="None" Width="100%" 
PagerStyle-Mode="NumericPages" > 
<PagerStyle CssClass="pgr" Height="25px" BorderStyle="Solid" /> 

<Columns> 
<asp:TemplateField HeaderText="Approve"> 
<ItemTemplate> 
<asp:RadioButton runat="server" GroupName="status" /> 
                    </ItemTemplate>                                 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Reject"> 
<ItemTemplate> 
<asp:RadioButton runat="server" GroupName="status" /> 
                    </ItemTemplate>                                 
</asp:TemplateField><asp:TemplateField HeaderText="Submit"> 

<ItemTemplate> 
<asp:Button CssClass="btnAction" Text="Sumbit" runat="server" OnClick="submit_info" /> 
                    </ItemTemplate>                                
</asp:TemplateField> 

                   </Columns>               
<HeaderStyle CssClass="vutblhdr" /> 

</asp:GridView> 
+0

凡方法GridViewBind叫什么?它看起来像你在数据绑定完成之前使用控制的值... –

+0

是它现在解决了...没有得到错误..但它没有更新我的T_TADA_tempform一旦我点击单选按钮,然后点击提交 – user2605927

回答

1

你会看到,当你试图使用尚未正确初始化的对象错误。

可能的候选人是:

RadioButton rbpApprove = (RadioButton)grow.FindControl("rbtnapprove"); 
RadioButton rbpReject = (RadioButton)grow.FindControl("rbtnreject"); 

如果没有找到rbpApprove然后控制这条线的位置:

if (rbpApprove.Checked == true) 

会给你你所得到的错误。

但是只能看到你的代码的一个子集,它可能在其他地方。

+0

是的,我忘记把单选按钮ID ..现在错误消失了,但它仍然不会更新我的T_TADA_tempform ... – user2605927

0

我认为你缺少radionbuttons的ID,试试这个

 <asp:TemplateField HeaderText="Approve"> 
      <ItemTemplate> 
       <asp:RadioButton ID="rbtnapprove" runat="server" GroupName="status" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Reject"> 
      <ItemTemplate> 
       <asp:RadioButton ID="rbtnreject" runat="server" GroupName="status" /> 
      </ItemTemplate> 
     </asp:TemplateField> 

并调用执行

if (rbpApprove.Checked == true) 
      { 
       conn.Open(); 
       SqlCommand cmd = new SqlCommand("UPDATE T_TADA_tempform SET Recommened_tag =1 where [email protected]", conn); 

       cmd.Parameters.AddWithValue("@EmpID", ddlname.SelectedValue); 
       cmd.ExecuteNonQuery(); 

       conn.Close(); 

      } 
+0

是的,我忘了把ID ..错误已经消失,但它仍然没有更新我的表... – user2605927

+0

你不要在连接上调用execute,请参阅我的答案 –