<asp:datalist id="DataList1" style="Z-INDEX: 101; LEFT: 65px; POSITION: absolute; TOP: 31px" runat="server" BorderColor="#E7E7FF" BorderStyle="None" BackColor="White" CellPadding="3" GridLines="Horizontal" BorderWidth="1px">
<SelectedItemStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#738A9C"></SelectedItemStyle>
<SelectedItemTemplate>
<table bgcolor="#6699ff">
<tr>
<td>
<%#DataBinder.Eval(Container.DataItem,"CID")%>
</td>
<td>
<%#DataBinder.Eval(Container.DataItem,"CompanyName")%>
</td>
</tr>
</table>
<table>
<tr>
<td>
<asp:DataList id="DataList2" runat="server" DataSource='<%# GetOrder((string)DataBinder.Eval(Container.DataItem,"CompanyName"))%>' OnItemCommand="DataList2_ItemCommand">
<ItemTemplate>
<table>
<tr>
<td>
<asp:LinkButton ID="Lbtn2" Runat="server" CommandName="select">
<%#DataBinder.Eval(Container.DataItem,"OrderID")%>
</asp:LinkButton></td>
<td><%#DataBinder.Eval(Container.DataItem,"OrderDate")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"ShippedDate")%></td>
</tr>
</table>
</ItemTemplate>
<SelectedItemTemplate>
<table>
<tr>
<td>
<%#DataBinder.Eval(Container.DataItem,"OrderID")%>
</td>
<td><%#DataBinder.Eval(Container.DataItem,"OrderDate")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"ShippedDate")%></td>
<td>dfsdfsdfsdfdsdfsdf</td>
</tr>
</table>
<table>
<tr>
<td>
<asp:DataGrid ID="DataGrid1" Runat="server" DataSource='<%#GetDetails((int)DataBinder.Eval(Container.DataItem,"OrderID"))%>' AllowCustomPaging=True>
</asp:DataGrid></td>
</tr>
</table>
</SelectedItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</SelectedItemTemplate>
<AlternatingItemStyle BackColor="#F7F7F7"></AlternatingItemStyle>
<ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
<ItemTemplate>
<table>
<tr>
<td>
<asp:LinkButton ID="Lbtn1" Runat="server" CommandName="select">
<%#DataBinder.Eval(Container.DataItem,"CompanyName")%>
</asp:LinkButton></td>
<td>
<asp:Label ID="Lab" Runat=server text='<%#DataBinder.Eval(Container.DataItem,"CompanyName")%>' Visible=False/>
</td>
</tr>
</table>
</ItemTemplate>
<FooterStyle ForeColor="#4A3C8C" BackColor="#B5C7DE"></FooterStyle>
<HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
</asp:datalist></form>
当按第一个datalist上的linkbutton时 可以显示第二个datalist 但是按第二个datalist上的linkbutton确无法显示第三个datalist(或datagrid) 我的问题就是为什么第一个的datalist的select命令有效 而第二个的没有 请高手帮我解决下难题
<SelectedItemStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#738A9C"></SelectedItemStyle>
<SelectedItemTemplate>
<table bgcolor="#6699ff">
<tr>
<td>
<%#DataBinder.Eval(Container.DataItem,"CID")%>
</td>
<td>
<%#DataBinder.Eval(Container.DataItem,"CompanyName")%>
</td>
</tr>
</table>
<table>
<tr>
<td>
<asp:DataList id="DataList2" runat="server" DataSource='<%# GetOrder((string)DataBinder.Eval(Container.DataItem,"CompanyName"))%>' OnItemCommand="DataList2_ItemCommand">
<ItemTemplate>
<table>
<tr>
<td>
<asp:LinkButton ID="Lbtn2" Runat="server" CommandName="select">
<%#DataBinder.Eval(Container.DataItem,"OrderID")%>
</asp:LinkButton></td>
<td><%#DataBinder.Eval(Container.DataItem,"OrderDate")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"ShippedDate")%></td>
</tr>
</table>
</ItemTemplate>
<SelectedItemTemplate>
<table>
<tr>
<td>
<%#DataBinder.Eval(Container.DataItem,"OrderID")%>
</td>
<td><%#DataBinder.Eval(Container.DataItem,"OrderDate")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"ShippedDate")%></td>
<td>dfsdfsdfsdfdsdfsdf</td>
</tr>
</table>
<table>
<tr>
<td>
<asp:DataGrid ID="DataGrid1" Runat="server" DataSource='<%#GetDetails((int)DataBinder.Eval(Container.DataItem,"OrderID"))%>' AllowCustomPaging=True>
</asp:DataGrid></td>
</tr>
</table>
</SelectedItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</SelectedItemTemplate>
<AlternatingItemStyle BackColor="#F7F7F7"></AlternatingItemStyle>
<ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
<ItemTemplate>
<table>
<tr>
<td>
<asp:LinkButton ID="Lbtn1" Runat="server" CommandName="select">
<%#DataBinder.Eval(Container.DataItem,"CompanyName")%>
</asp:LinkButton></td>
<td>
<asp:Label ID="Lab" Runat=server text='<%#DataBinder.Eval(Container.DataItem,"CompanyName")%>' Visible=False/>
</td>
</tr>
</table>
</ItemTemplate>
<FooterStyle ForeColor="#4A3C8C" BackColor="#B5C7DE"></FooterStyle>
<HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
</asp:datalist></form>
当按第一个datalist上的linkbutton时 可以显示第二个datalist 但是按第二个datalist上的linkbutton确无法显示第三个datalist(或datagrid) 我的问题就是为什么第一个的datalist的select命令有效 而第二个的没有 请高手帮我解决下难题
{
DataSet ds =new DataSet();
this.sqlDataAdapter1.Fill(ds,"company");
this.DataList1.DataSource=ds.Tables["company"].DefaultView;
this.DataList1.DataBind();
}public DataSet GetOrder(string a)
{
string command="select * from [Order] where CompanyID='"+a+"'";
SqlDataAdapter da=new SqlDataAdapter(command,sqlConnection1);
DataSet de=new DataSet();
da.Fill(de);
return de;
}
public DataSet GetDetails(int a)
{
string command="select * from OrderDetailsTable where OrderID="+a+"";
SqlDataAdapter da=new SqlDataAdapter(command,sqlConnection1);
DataSet de=new DataSet();
da.Fill(de);
return de;
}private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
ViewState["CompanyName"]=((Label)e.Item.FindControl("Lab")).Text;
string cmd=((LinkButton)e.CommandSource).CommandName;
if(cmd=="select")
((DataList)source).SelectedIndex=e.Item.ItemIndex;
bind();
}
public void DataList2_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
ViewState["OrderID"]=((LinkButton)e.Item.FindControl("Lbtn2")).Text;
string bo=(string)ViewState["OrderID"];
string cmd=((LinkButton)e.CommandSource).CommandName;
DataList Sender = (DataList)source;
if(cmd=="select")
Sender.SelectedIndex=e.Item.ItemIndex;
Sender.DataSource=GetOrder((string)ViewState["CompanyName"]);
Sender.DataBind();
}