dropdownlist1绑定到sqldatasource1从数据库读取单位名称
dropdownlist2绑定到sqldatasource2从数据库读取部门名称
gridview1绑定到sqldatasource3从数据库读取员工名称sqldatasource2关联到dropdownlist1
sqldatasource3关联到dropdownlist2现在的问题是:
选择部门后,员工表格肯定随着变
选择单位后,部门列表肯定随着变,但员工表格有时候随着变,有时候不随着变,奇怪了

解决方案 »

  1.   

    现在有问题的代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="RenShi_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            &nbsp;&nbsp;
            <br />
            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1"
                DataTextField="Name" DataValueField="Id" AppendDataBoundItems="True">
            </asp:DropDownList>
            <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource2"
                DataTextField="Name" DataValueField="Id">
            </asp:DropDownList><br />
            <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
                DataSourceID="SqlDataSource3" AllowSorting="True" Height="1px" Width="308px" DataKeyNames="Id">
                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True"
                        SortExpression="Id" />
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:BoundField DataField="Sex" HeaderText="Sex" SortExpression="Sex" />
                    <asp:BoundField DataField="Birthday" HeaderText="Birthday" SortExpression="Birthday" />
                </Columns>
            </asp:GridView>
            <br />
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyDB %>"
                SelectCommand="SELECT * FROM [unit]"></asp:SqlDataSource>
            <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:MyDB %>"
                SelectCommand="SELECT * FROM [department] where unitid=@unitid">
                <SelectParameters>
                    <asp:ControlParameter ControlID="DropDownList1" Name="unitid" PropertyName="SelectedValue" />
                </SelectParameters>
            </asp:SqlDataSource>
            <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:MyDB %>"
                SelectCommand="SELECT Id, Name, Sex, Birthday FROM teacher WHERE (DepartmentId = @departmentid)">
                <SelectParameters>
                    <asp:ControlParameter ControlID="DropDownList2" Name="departmentid" PropertyName="SelectedValue" />
                </SelectParameters>
            </asp:SqlDataSource>
        </div>
        </form>
    </body>
    </html>
      

  2.   

    我自己解决这个问题了,增加
    protected void DropDownList2_PreRender(object sender, EventArgs e)
    {
    GridView1.DataBind();
    }
    就可以了。