0

グリッド ビューがあり、ラジオボタンの承認をクリックすると、employeeID に基づいて推奨タグの値が 1 に更新されます。しかし、オブジェクトがオブジェクトのインスタンスに設定されていないというエラーが表示されます。私の列は右ではなく左にも追加されています..以下は私が試したコードです。

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 EmpID=@EmpID", 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>
4

2 に答える 2

1

正しく初期化されていないオブジェクトを使用しようとすると、このエラーが表示されます。

考えられる候補は次のとおりです。

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

rbpApproveコントロールが見つからない場合、この行は次のとおりです。

if (rbpApprove.Checked == true)

取得しているエラーが表示されます。

ただし、コードのサブセットのみを表示すると、他の場所にある可能性があります。

于 2013-10-18T09:07:27.183 に答える
0

ラジオボタンの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 EmpID=@EmpID", conn);

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

                conn.Close();

            }
于 2013-10-18T09:07:48.343 に答える