注册 登录
编程论坛 ASP.NET技术论坛

[求助] 我直接在链接列表的后面定义了一个label控件,然在在后台求取系的时间为什么

xiawei512 发布于 2007-05-15 14:21, 1486 次点击

我用DataList控件显示新闻列表,在显示的时候我想在后直接求取系的时间(5/15),

我直接在链接列表的后面定义了一个label控件,然在在后台求取系的时间

前台代码:

<asp:DataList ID="dlSZ" runat="server">

<ItemTemplate>

<table class="txt" >
<tr><td style="width:1px;"></td> <td style="width:300px">
·&nbsp;&nbsp;&nbsp; <asp:LinkButton ID="LinkButton1" ForeColor="#660033" runat="server" CommandName="select" ><%# DataBinder.Eval(Container.DataItem,"title") %> </asp:LinkButton>



</td>

<td style="width:10px" > <asp:Label ID="Label1" runat="server" Text="Label1"></asp:Label> </td> </tr>
</table>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<AlternatingItemStyle Font-Bold="False" />
</asp:DataList>

后台代码:
public partial class _Default : System.Web.UI.Page
{

BaseClass bc = new BaseClass();
protected void Page_Load(object sender, EventArgs e)
{

dlSZ.DataSource = bc.GetDataSet("SELECT TOP 10 * FROM xinwen WHERE (Type = '国内新闻')", "xinwen");
dlSZ.DataKeyField = "id";
dlSZ.DataBind();

DataList1.DataSource = bc.GetDataSet("SELECT TOP 5 * FROM tbtu order by addDate desc", "tbtu");
DataList1.DataKeyField = "id";
DataList1.DataBind();
Label1.Text = System.DateTime.Now.ToString(MM / dd);
}

错误提示:

当前上下文中不存在名称“Label1”

11 回复
#2
xiawei5122007-05-15 14:24
我想可能是BaseClass.cs中的问题,

我应该怎么在BaseClass.cs中定义呢?
#3
Kendy1234562007-05-15 15:11
不是css的问题.

你的label1 是定义在Datalist里面的ItemTemplate内
不可以直接引用的 (你想想 如果List有10个Item 你等于有10个Label1)

要先用findcontrol定位这个控件才能引用
#4
xiawei5122007-05-15 15:41
我应该怎么写呢?请指点,谢谢
#5
Kendy1234562007-05-15 16:57
等柠檬MM或者bygg来吧

C#我只会看不会写 我是用vb的
#6
shenba2007-05-15 20:59

如果只是显示时间,那么直接让label.Text绑定 时间不行吗

#7
tel19822007-05-15 22:23
楼上说的是呀!
#8
xiawei5122007-05-16 09:48
那应该怎么写呢?
#9
tel19822007-05-16 11:51

把你在数据库里面的字段绑定到Label的Text上,再写后台代码即可。

#10
bygg2007-05-16 12:55
放在模板列里面的就得用FindControl来找到这个Label,才能调用它,并对它赋值
#11
xiawei5122007-05-17 15:12

那代码应该怎么写呢?

#12
Kendy1234562007-05-17 16:30

怎么没人给你个例子的... 我给你个Vb.net的例子 你自己看着改成c#的吧 另外 不能在pageload事件里面来实现


Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

...
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.SelectedItem
CType(e.Item.FindControl("label1"), Label).Text = Format(Now(),"MM/dd/yyyy")
...
End Select
...
End Sub

1