在用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>