gridview模板列里listbox绑定问题:未将对象引用设置到对象的实例

linting11223 2010-11-21 10:16:23
gridview里的部分代码:
<asp:TemplateField HeaderText="绑定的会议室">
<ItemStyle Width="100px" />
<ControlStyle Width="100px" />
<EditItemTemplate>
<asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple"></asp:ListBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lb_state" runat="server" Text='<%# Bind("room_name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="更新" ShowEditButton="True" CausesValidation="False" ItemStyle-Width="120px">
</asp:CommandField>

CODE代码:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string sql3 = "select room_id,room_name from room_list";
ListBox ListBox2 = (ListBox)e.Row.FindControl("ListBox1");
ListBox2.DataSource = dataOperate.getDataset(sql3);
ListBox2.DataTextField = "room_name";
ListBox2.DataValueField = "room_id";
ListBox2.DataBind();
LinkButton lkbDel = (LinkButton)e.Row.FindControl("lbtnDelete");
lkbDel.Attributes.Add("OnClick", "javascript:return confirm('确定要删除该管理员吗?')");
Label lb1 = (Label)e.Row.Cells[0].FindControl("lable");
lb1.Text = (GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex + 1).ToString();
}
}

错误提示:未将对象引用设置到对象的实例
源错误:
行 74: string sql3 = "select room_id,room_name from room_list";
行 75: ListBox ListBox2 = (ListBox)e.Row.FindControl("ListBox1");
行 76: ListBox2.DataSource = dataOperate.getDataset(sql3);行 77: ListBox2.DataTextField = "room_name";
行 78: ListBox2.DataValueField = "room_id";

76行出错

...全文
256 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linting11223 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jshi123 的回复:]
把根ListBox1相关的操作放到状态判断后的语句块中:
if (e.Row.RowState == DataControlRowState.Edit)
{
ListBox ListBox2 = (ListBox)e.Row.FindControl("ListBox1");
..
}
[/Quote]
加在RowDataBound里面吗?
luozhongxian001 2010-11-22
  • 打赏
  • 举报
回复
你在其他里面删除了某项,但是在源没有修改。方法是直接散掉错误的地方就可以了。。。。
jshi123 2010-11-22
  • 打赏
  • 举报
回复
把根ListBox1相关的操作放到状态判断后的语句块中:
if (e.Row.RowState == DataControlRowState.Edit)
{
ListBox ListBox2 = (ListBox)e.Row.FindControl("ListBox1");
..
}
jshi123 2010-11-22
  • 打赏
  • 举报
回复
ListBox1 只有在编辑状态下才有
linting11223 2010-11-22
  • 打赏
  • 举报
回复
自己顶顶,没人回答哎

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧