Gridview在点击编辑时,如何使编辑模板的DropDownList显示出正确地值?
我想在点击编辑按钮后,ddlsex下拉框能够显示出lbsex的值,这个怎么写?
也就是点击编辑按钮时,DropDownList能够初始化值
<asp:TemplateField HeaderText="性别">
<EditItemTemplate>
<asp:DropDownList ID="ddlSex" runat="server" Width="80%" >
<asp:ListItem Value="0">保密</asp:ListItem>
<asp:ListItem Value="1">男</asp:ListItem>
<asp:ListItem Value="2">女</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbsex" runat="server" Text='<%# FormatSex(Eval("gender")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField> protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex; string strsex = ((Label)GridView1.Rows[e.NewEditIndex].FindControl("lbsex")).Text;
DropDownList list=(DropDownList)GridView1.Rows[e.NewEditIndex].FindControl("ddlSex");
list.SelectedValue = strsex;
BindData();
}
我写的报错:未将对象引用设置到对象的实例
请问哪里错了?
该怎么写才是正确的?
我想在点击编辑按钮后,ddlsex下拉框能够显示出lbsex的值,这个怎么写?
也就是点击编辑按钮时,DropDownList能够初始化值
<asp:TemplateField HeaderText="性别">
<EditItemTemplate>
<asp:DropDownList ID="ddlSex" runat="server" Width="80%" >
<asp:ListItem Value="0">保密</asp:ListItem>
<asp:ListItem Value="1">男</asp:ListItem>
<asp:ListItem Value="2">女</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbsex" runat="server" Text='<%# FormatSex(Eval("gender")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField> protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex; string strsex = ((Label)GridView1.Rows[e.NewEditIndex].FindControl("lbsex")).Text;
DropDownList list=(DropDownList)GridView1.Rows[e.NewEditIndex].FindControl("ddlSex");
list.SelectedValue = strsex;
BindData();
}
我写的报错:未将对象引用设置到对象的实例
请问哪里错了?
该怎么写才是正确的?
<asp:DropDownList ID="ddlSort" runat="server" Width="98%">
</asp:DropDownList>
<asp:HiddenField ID="Hd_Sort" runat="server" Value='<%# Eval("BalSort")%>' />
</ItemTemplate>
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex != -1)
{ if (e.Row.RowState == DataControlRowState.Edit || e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
{
((DropDownList)e.Row.FindControl("ddlSort")).SelectedValue = ((HiddenField)e.Row.FindControl("Hd_Sort")).Value;
}
}
} protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
string strSort = ((DropDownList)gv.Rows[e.NewEditIndex].FindControl("ddlSort")).SelectedValue.Trim();
gv.EditIndex = -1;
BindData();
}
我是说点击编辑的时候DropDownList就能够显示出所需要的值
方法二:在編輯按鈕的事件裏 給相應的 dropdownlist 綁定值
{
gv.EditIndex = e.NewEditIndex;
BindData();
HiddenField hd=(HiddenField)gv.Row[e.NewEditIndex].FindControl("hdsex");
DropDownList ddlsex= (DropDownList)gv.Rows[e.NewEditIndex].FindControl("ddlsex");
ddlsex.SelectValue=hd.value;
}试试这个,应该可行
“未将对象引用设置到对象的实例。”
这是什么原因呢,提问者找到解决的方法没啊。
写了半天突然发现我们的问题相似,但我的dropdownlist 是要绑定到数据库,再从里面取出值。