我有一个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>
答案 0 :(得分:0)
您正在sender as DropDownList
投放sender
而dropdown
不是DropDown
,无法投放到null
所以Null Reference Exception
就是find
这就是您的原因获得dropdown
。
您需要做的是grdiview
来自DropDownList ddl_jenis_kuitansi = row.FindControl("ddl_jenis_kuitansi") as DropDownList;
的{{1}},然后执行其他操作。
<style type="text/css">
<%@include file="css/style.css" %>
</style>
<script type="text/javascript">
<%@include file="js/script.js" %>
</script>
答案 1 :(得分:0)
您无法直接从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");
}