[求助]关于在DataList取值的问题

syl2000 2006-05-29 11:49:28
我在DataList中有三个字段:UserID,UserNM,InfoID。其中UserID设置为DataKeyField;UserNM设置为LinkButton,其绑定的字段显示为UserNM;另外还有一个Label,其绑定显示的text为InfoID的值。我现在只想显示UserNM给用户看,绑定InfoID的Label的visible=false。

<asp:datalist id="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="3" BackColor="#99cccc" Width="285" CellSpacing="1" GridLines="Both" CellPadding="1" BorderWidth="1" DataKeyField="UserID">
<HeaderTemplate>用户列表</HeaderTemplate>
<ItemStyle Font-Size="9pt" HorizontalAlign="Center" Height="23px" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate> <asp:linkbutton id="Linkbutton1" runat="server" CommandName="edit_user" ToolTip="编辑当前用户的相关信息"><%#DataBinder.Eval(Container.DataItem,"UserNM")%></asp:linkbutton>
<asp:Label id="Label_InfoID" runat="server" Visible="false"><%#DataBinder.Eval(Container.DataItem,"InfoID")%></asp:Label>
</ItemTemplate>
<HeaderStyle Font-Size="9pt" Font-Bold="True" HorizontalAlign="Center" Height="25px" BackColor="#CCCCFF"></HeaderStyle> </asp:datalist>

在cs文件中:
private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
int iClickNdx = e.Item.ItemIndex;
this.DataList1.SelectedIndex = iClickNdx;
int iUserID = int.Parse(this.DataList1.DataKeys[iClickNdx].ToString());

this.Label1.Text = ((Label)(this.DataList1.Items[e.Item.ItemIndex].FindControl("Label_InfoID"))).Text;

if(e.CommandName.ToString().CompareTo("edit_user") == 0)
{
.
.
.
}
}

在上面的过程中,我想取Label_InfoID的值,可是 this.Label1.Text = ((Label)(this.DataList1.Items[e.Item.ItemIndex].FindControl("Label_InfoID"))).Text; 所返回的始终是空。我又试了下取LinkButton的Text,结果也是空。

不知道是什么原因,郁闷死我了!!! 或者那位高人指点下,有没有其他方法可以达到我的目的亚!

多谢先!!!
...全文
293 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
syl2000 2006-06-10
  • 打赏
  • 举报
回复
问题解决了!
nhtoby(飞不起的翼) 说的有道理,在VS2003里面也是这样的!
syl2000 2006-05-31
  • 打赏
  • 举报
回复
没有人能够帮我解决问题吗?
seabedsun 2006-05-30
  • 打赏
  • 举报
回复
直接用e.Items.FindControls("Label_InfoID")
你把语句改成下面的语句试一试:
this.Label1.Text = ((Label)e.Item..FindControl("Label_InfoID")).Text;
Firestone2003 2006-05-30
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=60B8B07E-A3DF-4AE5-B5F8-71204C7C8793
syl2000 2006-05-30
  • 打赏
  • 举报
回复
首先多谢各位的回复!!!

TO nhtoby(飞不起的翼) :
我用的是VS2003,并且我检验过 e.Item.ItemIndex ,在我点击DataList中的LinkButton时,其值是正确的!

To Lcindep110(Going Home) 和 seabedsun(海底的太阳):
昨天就试过了,还是一样的!

To Firestone2003(笨笨小猪):
正在学习你的文章!不过好像里面是用的DataGrid,而不是DataList!我现在用DataList的主要目的是想要在同一行上显示多列数据!在DataGrid中的ItemCommand事件中,我是可以正确取值的!现在DatList中,我仿照DataGrid中的做法却不行了!



继续求助!!!!
Lcindep110 2006-05-29
  • 打赏
  • 举报
回复
直接用e.Items.FindControls("Label_InfoID")
nhtoby 2006-05-29
  • 打赏
  • 举报
回复
不知你是不是用vs2005的?
如果是的话那么这样子是不可以得到那个值的,只有那个commandname是等于select时那个e.Item.ItemIndex才会有值,不然只是-1

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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