我有一个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");
}