我遇到了一个非常令人沮丧的问题,希望大家能提供帮助。

我有两组下拉列表;第一个是从数据库调用中填充的,它只是一个唯一的客户端列表。第二个是服务人员列表;并且应该通过第一个Dropdownlist的结果进行过滤。

注意,主要问题似乎是“ DropdownListClient.SelectedIndex.ToString()”的第一个下拉列表结果显示的值为-1。但是,当启动网页时,下拉列表只有两个选项。

Value List Description0 Green Tree1 Chase

那么,为什么Dropdownlist的DEFAULT选定值等于-1?我似乎找不到任何将默认值设置为下拉列表中显示的值的东西。

我后面的代码看起来像这样。

    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = User.Identity.Name;
        if (!Page.IsPostBack)
        {
Documenation_ClientProject.SelectParameters.Add("Personlookup",User.Identity.Name);
Documenation_ClientProject.SelectCommand = "SELECT distinct Clientname FROM [FileReviewProject] where personid=@Personlookup";
Label2.Text = DropDownListClient.SelectedIndex.ToString();
/*shows a -1 but should show a 0 (since the displayed result in the first    drop down list is the 0 value of green Tree*/
Documenation_ServicerProject.SelectParameters.Add("ServDef",    DropDownListClient.Text);
Documenation_ServicerProject.SelectCommand = "SELECT distinct LoanServicer    FROM [FileReviewProject] where clientname=@ServDef";

        }
    }


我的asp.net页面看起来像...

<asp:SqlDataSource ID="Documenation_ClientProject" runat="server"
 ConnectionString="<%$ ConnectionStrings:DEVSQLCATConnection%>">
</asp:SqlDataSource>

<asp:SqlDataSource ID="Documenation_ServicerProject" runat="server"
 ConnectionString="<%$ ConnectionStrings:DEVSQLCATConnection%>">
</asp:SqlDataSource>


<asp:DropDownList ID="DropDownListClient" runat="server" DataSourceID="Documenation_ClientProject" DataTextField="ClientName" DataValueField="ClientName" AutoPostBack="True" OnSelectedIndexChanged="DropDownListClient_SelectedIndexChanged">
</asp:DropDownList>

<asp:DropDownList ID="DropDownServicer" runat="server" DataSourceID="Documenation_ServicerProject" DataTextField="LoanServicer" DataValueField="LoanServicer">
  </asp:DropDownList>

最佳答案

尚未选择任何内容,因此DropdownListClient.SelectedIndex当然是-1,在设置DropdownListClient.SelectedIndex = 0之前将索引设置为0 Label2.Text,应该没问题。

10-02 18:19