2015-06-23 3 views
1

Я пытаюсь создать два раскрывающихся списка, первый из которых выберет год, второй из которых будет основан на выбранном значении (который является идентификатором), тогда будет отображаться только форма с yearID, который равен ID выбранного значения. Я думаю, что я прав, просто он не работает.Значение раскрывающегося списка привязки для другого раскрывающегося списка

<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Year" DataValueField="ID" AppendDataBoundItems="true" > 
    <asp:ListItem>-- choose one --</asp:ListItem> 
</asp:DropDownList><asp:DropDownList ID="DropDownList2" runat="server" AppendDataBoundItems="True" DataSourceID="SqlDataSource2" DataTextField="Form" DataValueField="ID"> 
    <asp:ListItem>-- choose one --</asp:ListItem> 
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:SignInOutConnectionString %>" SelectCommand="SELECT [Form], [ID] FROM [PForm] WHERE ([YearID] = @YearID)"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="DropDownList1" DbType="Int16" Name="YearID" PropertyName="SelectedValue" Type="Int16" /> 
    </SelectParameters> 
</asp:SqlDataSource> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SignInOutConnectionString %>" SelectCommand="SELECT [Year], [ID] FROM [PYear]"></asp:SqlDataSource>` 

Однако когда я загрузить его, он говорит: «Тип свойства параметра„YearID“не может быть установлен, если свойство DbType установлено.»

+0

Вы пытались удалить либо 'DBType', либо' Type'? –

+0

Да, я так и думал, что это то, что вызывало его, но затем оно дает ошибку «Строка ввода не в правильном формате». для одного из них вы удаляете. – Nitrover

+0

Вторая ошибка хорошая, это означает, что вы прошли первую проблему. Теперь убедитесь, что ваши данные в базе данных верны. Является ли YearID в базе данных целым числом? –

ответ

0

Я разобрался в своей проблеме, но опубликую ответ здесь для всех, у кого есть эта проблема.

<asp:Label ID="Label1" runat="server"> 
    <asp:TextBox ID="TextFirstName" runat="server" placeholder="First Name" AutoCompleteType="Disabled" Height="55px" Width="300px" Font-Size="40px" /> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please Enter First Name" ControlToValidate="TextFirstName"></asp:RequiredFieldValidator> 
    <br /> 
    <br /> 
    <asp:TextBox ID="TextLastName" runat="server" placeholder="Last name" AutoCompleteType="Disabled" Height="55px" Width="300px" Font-Size="40px" /> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please Enter Last Name" ControlToValidate="TextLastName"></asp:RequiredFieldValidator> 
    <br /> 

    <asp:ImageButton ID="Button1" runat="server" OnClick="Button1_Click" ImageUrl="~/Images/Next.png" ImageAlign="Right" /> 
</asp:Label><asp:Label ID="Label2" runat="server"> 
    <asp:TextBox ID="TextReason" runat="server" placeholder="Reason" AutoCompleteType="Disabled" Height="55px" Width="300px" Font-Size="40px" /> 
    <asp:ImageButton ID="Button2" runat="server" ImageUrl="~/Images/Next.png" OnClick="Button2_Click" /> 
</asp:Label><asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Year" DataValueField="ID" AppendDataBoundItems="true"> 
    <asp:ListItem Value="0">-- Choose One --</asp:ListItem> 
</asp:DropDownList><asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource2" DataTextField="Form" DataValueField="ID" AppendDataBoundItems="true"> 
    <asp:ListItem Value="0">-- Choose One --</asp:ListItem> 
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:SignInOutConnectionString %>" SelectCommand="SELECT [Form], [ID] FROM [PForm] WHERE ([YearID] = @YearID)"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="DropDownList1" Name="YearID" PropertyName="SelectedValue" Type="int16" /> 
    </SelectParameters> 
</asp:SqlDataSource> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SignInOutConnectionString %>" SelectCommand="SELECT [Year], [ID] FROM [PYear]"></asp:SqlDataSource> 

Что я изменил, я удалил DbType = "Int" из параметра управления. Но затем, изменив несколько других вещей, я понял, что мой ListItem вызывает ошибку, что он не будет преобразован в int, поскольку значение было nvarchar, поэтому мне пришлось установить значение ListItem равным 0. Это прекрасно работает, надеюсь, это поможет любому, у кого была моя проблема. :)

Смежные вопросы