必须请高手回答了,特急。asp.net问题
我在aspx文件中的DataGrid是这样定义的:
<asp:datagrid id="dgList" runat="server" Width="100%" BorderWidth="1px" BorderColor="#838383" AutoGenerateColumns="False" DataKeyField="ID">
<Columns>
<asp:TemplateColumn HeaderStyle-Width="40%">
<HeaderTemplate>
<asp:Label id="lbMenuName" runat="server">y</asp:Label>
</HeaderTemplate>
</asp:TemplateColumn>
</Columns>
.........................(下面的省略)
</asp:datagrid>
我的目的是要在aspx.cs文件中动态的给Lable(lbMenuName)赋值,cs文件给它赋值部分是这样的:(因为Label处在<asp:TemplateColumn >中)
Label fathermenu=(Label)this.FindControl("lbMenuName");
lbMenuName.Text="test";
但执行到 lbMenuName.Text="test" 就会出错。请问是怎么回事,,快救救我。急疯了,万分感谢!
错误提示:Object reference not set to an instance of an object.
问题点数:20、回复次数:13Top
1 楼fancyf(凡瑞)回复于 2005-06-01 13:38:21 得分 0
应该用fathermenu.Text="test";Top
2 楼zhangyu028(听天之音)回复于 2005-06-01 13:43:42 得分 0
一楼正解Top
3 楼swzlxm(守望者)回复于 2005-06-01 13:48:05 得分 0
Label fathermenu=(Label)this.FindControl("lbMenuName");
if(fathermenu!=null)
{
fathermenu.Text="test";
}
Top
4 楼cobrastudio(老汉我)回复于 2005-06-01 13:50:35 得分 0
回复人: fancyf(凡瑞) ( ) 信誉:100 2005-06-01 13:38:00 得分: 0
应该用fathermenu.Text="test";
==
正解。Top
5 楼huangguolinc(来了)回复于 2005-06-01 13:54:17 得分 0
Label fathermenu=(Label)this.FindControl("lbMenuName");
你都这样了,为什么还用lbMenuName?
一楼正解Top
6 楼afanti_nj(阿凡提)回复于 2005-06-01 13:59:20 得分 0
来迟一步有正解了~~Top
7 楼dotnet_lover()回复于 2005-06-01 13:59:31 得分 0
((Label)(dgList.Items[e.Item.ItemIndex].Cells[1].FindControl("lbMenuName"))).Text="CSDN"Top
8 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-01 14:09:31 得分 0
Label fathermenu = (Label)dgList.Items[e.Item.ItemIndex].FindControl("lbMenuName");
fathermenu.Text = "你的值";Top
9 楼foxconn_nich(Blog: http://www.jemy.cn)回复于 2005-06-01 20:31:55 得分 0
还是没有正解。
我开始也是fathermenu.Text="test";只是复制到这时搞错了。。
dotnet_lover() 和 hchxxzx(NET?摸到一点门槛) 好像都有道理。。但总通不过
错误提示:Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
继续请帮忙!Top
10 楼laihua(背着石头过河)回复于 2005-06-01 20:58:12 得分 0
foreach (DataGridItem di in DataGrid1.Items)
{
//一定是数据栏
if (di.ItemType == ListItemType.Item || di.ItemType == ListItemType.AlternatingItem)
{
Label lbltxt=(Label)di.FindControl("lbMenuName")
if (lbltxt!=null)
{
lbltxt.Text="csdn";
}
}
}Top
11 楼hdt(倦怠)回复于 2005-06-01 21:05:42 得分 20
在DataGrid的itemcreated事件里写
private void dgList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if( e.Item.ItemType == ListItemType.Header )
{
Label label = (Label)e.Item.FindControl( "lbMenuName" );
if( label != null )
label.Text = "hello";
}
}Top
12 楼foxconn_nich(Blog: http://www.jemy.cn)回复于 2005-06-03 08:56:28 得分 0
hdt(接分接出个星星)
从你这里悟出了东东Top
13 楼Alldim(Alldim)回复于 2005-08-25 13:45:25 得分 0
hdt(接分接出个星星) 正解Top




