在用datalist嵌套datagrid显示时,在datalist中有一Labelp控件,请问怎样设置这个Label控件的属性?

nnh 2004-04-23 11:52:27
在用datalist嵌套datagrid显示时,在datalist中有一Labelp控件(id="NoData"),请问在GetOrdersDataSet取得子项内容的函数中可不可以设置这个Label控件的属性.主要就是当没有子项内容时,控制Label控件是否显示.

代码如下:
我可以取得DataList控件的属性,但取不了Labelp控件的属性.请教.

<%@ Page Language="VB" AutoEventWireup="True" Debug="true"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<Script runat="server">
Dim cnn as OleDbConnection

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
If Not Page.IsPostBack Then
DataList1.DataSource = GetCustomerDataSet()
DataList1.DataBind()
End If
End Sub

Public Function GetCustomerDataSet()
Dim connstr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath(".")+"/db/data.mdb"
Dim cnn As New OleDbConnection(connstr)

Dim da As OleDbDataAdapter = new OleDbDataAdapter("select top 10 customerid,companyname from customers", cnn)
Dim ds As New DataSet()
da.Fill(ds, "customers")
Return ds
End Function

Public Function GetOrdersDataSet(ByVal customerid As String)
'---在这我可以取得datalist,但Label我取不出来.
dim dlA as datalist
dlA = Page.FindControl("DataList1")
response.write(dlA.ID)
'-------------------
Dim connstr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath(".")+"/db/data.mdb"
Dim cnn As New OleDbConnection(connstr)
Dim da As New OleDbDataAdapter("select orderid,orderdate from orders where customerid='" & customerid & "'", cnn)
Dim ds As New DataSet()
da.Fill(ds, "orders")
If ds.Tables("orders").Rows.Count <> 0 then
Return ds
End If
End Function
</Script>
<form id="Form1" method="post" runat="server">
<asp:DataList id="DataList1"
runat="server"
>
<ItemTemplate>
<table border="1" style="BORDER-COLLAPSE: collapse" borderColor="red" BgColor="#C6C6C6" cellSpacing="0" cellPadding="4" width="400">
<tr>
<td width="300"><asp:Label id="Label1" runat="server" forecolor="#330066">UserName:</asp:Label>
<asp:Label id="Label2" runat="server" text='<%# Container.dataitem("customerid") %>' visible="false"/>
<asp:Label id="Label3" runat="server" text='<%# Container.dataitem("companyname")%>' forecolor="red"/>
</td>
</tr>
<tr><td bgcolor="white">
<asp:Label id="NoData" runat="server" text="No Records" ForeColor="red"/></td></tr>
</table>
<asp:DataGrid id="DataGrid1"
runat="server"
AutoGenerateColumns="False"
CellPadding="4"
BackColor="White"
BorderWidth="1px"
BorderStyle="None"
BorderColor="#CC9966"
Width="400"
DataSource='<%# GetOrdersDataSet(Container.DataItem("customerid").ToString()) %>'>
<ItemStyle ForeColor="#330099" BackColor="white" ></ItemStyle>
<AlternatingItemStyle BackColor="#F3F3F3" ></AlternatingItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#FF8040" BackColor="#D8D8D8"></HeaderStyle>
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
<Columns>
<asp:BoundColumn HeaderText="Order ID" DataField="orderid"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Order Date" DataField="orderdate"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
</asp:DataGrid>
</ItemTemplate>
</asp:DataList>
</form>
</body>
</HTML>
...全文
84 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nnh 2004-04-26
  • 打赏
  • 举报
回复
up
yong427 2004-04-24
  • 打赏
  • 举报
回复
自己写个函数啊
Public Function IsVisible(ByVal strInput as string) As Bool
if strInput.Length != 0 then
begin
return true
end
else
return false
End Function


<asp:Label id="Label2" Visible='<%# IsVisible(Container.dataitem("customerid"))%>' runat="server" text='<%# Container.dataitem("customerid") %>'/>


nnh 2004-04-24
  • 打赏
  • 举报
回复
我想在Public Function GetOrdersDataSet(ByVal customerid As String)函數中可以對那個Label設置屬性,在這個函數中,沒有DataListItemEventArgs,請問要怎樣才能做到呀?

我不想在DataItem事件中取得Label,就是要在Public Function GetOrdersDataSet(ByVal customerid As String)函數取得它,你們都沒有明白我的意思嗎?

nnh 2004-04-24
  • 打赏
  • 举报
回复
up
bjy_ly 2004-04-23
  • 打赏
  • 举报
回复
DataGrid grid = new DataGrid();
grid = (DataGrid)datalist.Items[index].FindControl(gridname).......;
Label lab = new Label();
lab = grd.Items[index].Cell[index1].........
lab.Text="dlkjsdkljfsdlkjflkasdjfklasdjljfsdkal";
yong427 2004-04-23
  • 打赏
  • 举报
回复
回复人: bjy_ly(竹雨流云) ( ) 信誉:100 2004-04-23 12:02:00 得分:0

DataGrid grid = new DataGrid();
grid = (DataGrid)datalist.Items[index].FindControl(gridname).......;
Label lab = new Label();
lab = grd.Items[index].Cell[index1].........
lab.Text="dlkjsdkljfsdlkjflkasdjfklasdjljfsdkal";


把上面的代码写在DataItem事件中
nnh 2004-04-23
  • 打赏
  • 举报
回复
smilnet(笨笨)你的代碼沒有問題,可是我想在Public Function GetOrdersDataSet(ByVal customerid As String)函數中可以對那個Label設置屬性,在這個函數中,沒有DataListItemEventArgs,請問要怎樣才能做到呀?

ppp80 2004-04-23
  • 打赏
  • 举报
回复
同意smilnet(笨笨)
nnh 2004-04-23
  • 打赏
  • 举报
回复
樓上的代碼寫得不對吧,我的那個label是在datalist中的,不是在datagrid中呀.

62,074

社区成员

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

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

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

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