我不能从选择GridView Latpownist列表到特定页面



我有一个gridview,一个gridview中的一个coloumn是一个下拉列表,下拉列表将在单击"选择"按钮后确定将加载的页面。我以错误"对象引用未设置为对象的实例"结尾。这是我的代码(aspx.cs页)

protected void gv_dalamkota_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow row = gv_dalamkota.SelectedRow;           
    DropDownList ddl_jenis_kuitansi = sender as DropDownList;
    if (ddl_jenis_kuitansi.SelectedValue == "1")
    {
        Response.Redirect("dalamkota_rincian_dua.aspx");
    }
    else if (ddl_jenis_kuitansi.SelectedValue == "2")
    {
        Response.Redirect("dalamkota_rincian_satu.aspx");
    }
}

这是我的下拉

 <asp:GridView ID="gv_dalamkota"
    CssClass="table table-bordered"
    runat="server"
    BorderColor="#1E6BBC"
    BorderStyle="None"
    BorderWidth="1px"
    CellPadding="3"
    ShowFooter="True"
    AutoGenerateColumns="False"
    AllowPaging="True"
    OnSelectedIndexChanged="gv_dalamkota_SelectedIndexChanged"
    OnPageIndexChanging="OnPaging" DataSourceID="ds_dalamkota">
    <RowStyle BackColor="#EFEFEF" />
    <AlternatingRowStyle BackColor="white" />
    <PagerStyle CssClass="gridview" />
    <Columns>
        <asp:BoundField DataField="nond" HeaderText="Nomor ND" SortExpression="nond" />
        <asp:BoundField DataField="nost" HeaderText="Nomor Surat Tugas" SortExpression="nost" />
        <asp:BoundField DataField="halst" HeaderText="Hal Surat Tugas" SortExpression="halst" />
        <asp:TemplateField HeaderText="Jenis Kuitansi">
            <ItemTemplate>
                <asp:DropDownList ID="ddl_jenis_kuitansi" runat="server">
                    <asp:ListItem Value="1" Text="Kuitansi 1 Tahap"></asp:ListItem>
                    <asp:ListItem Value="2" Text="Kuitansi 2 Tahap"></asp:ListItem>
                </asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:CommandField ShowSelectButton="True" ControlStyle-CssClass="btn btn-success">
            <ControlStyle CssClass="btn btn-success"></ControlStyle>
        </asp:CommandField>
    </Columns>
</asp:GridView>

您正在施放sender as DropDownList,而这里的sender不是dropdown,不能将其施放到DropDown,所以它是null,这就是为什么您要获得Null Reference Exception

您需要做的是find dropdown中的CC_8,然后执行其余的动作。

DropDownList ddl_jenis_kuitansi = row.FindControl("ddl_jenis_kuitansi") as DropDownList;

您无法直接从GridView获得下拉值使用以下代码行为此

 GridViewRow row = gv_dalamkota.SelectedRow;           

        System.Web.UI.WebControls.DropDownList ddl_jenis_kuitansi= row.FindControl("lblName") as System.Web.UI.WebControls.DropDownList;
    if (ddl_jenis_kuitansi.SelectedValue == "1")
    {
        Response.Redirect("dalamkota_rincian_dua.aspx");
    }
    else if (ddl_jenis_kuitansi.SelectedValue == "2")
    {
        Response.Redirect("dalamkota_rincian_satu.aspx");
    }

最新更新