2012-03-12 3 views
1

Я пытаюсь сделать dropdownlist работать для меня. Пользователь может быть во многих «Field1», поэтому мне нужно, чтобы раскрывающийся список показывал эти поля Field1. В настоящее время я получаю пустой список. Вот пример кода:Выпадающий список появляется пустым при использовании @parameter

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
        SelectCommand="SELECT DISTINCT Field1 FROM table 
            WHERE (Field3= @Field3)"> 
        <SelectParameters> 
         <asp:ControlParameter ControlID="DropDownList1" Name="Field3" Type="String" /> 
        </SelectParameters> 
       </asp:SqlDataSource> 

Если я извлекаю выбора параметров и ИНЕКЕ появится список всех ОМСК - это только кажется, есть проблемы с @ Field3.

Edit: Я проверил запрос в SQL Server, и это работает для меня (заменив @ field3 с известным значением)

Есть предложения? Я очень новичок в asp.net и почти ничего не имею в файле .cs (помимо некоторых разрешений и т. Д.), Поэтому, если бы люди могли указать мне в правильном направлении, это было бы фантастически.

Edit 2: Это, вероятно, поможет, если я дал вам весь шаблон:

<asp:TemplateField HeaderText="Field1" SortExpression="Field2"> 
      <EditItemTemplate> 
       <asp:Label ID="Label2" runat="server" Text='<%# Eval("Field2") %>'></asp:Label> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:DropDownList ID="DropDownList1" runat="server" 
        DataSourceID="SqlDataSource2" DataTextField="Field1" DataValueField="Field1"> 
       </asp:DropDownList> 
       <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
        SelectCommand="Field1 FROM table 
            WHERE (Field3 = @Field3)"> 
        <SelectParameters> 
         <asp:ControlParameter ControlID="DropDownList1" Name="Field3" Type="String" /> 
        </SelectParameters> 
       </asp:SqlDataSource> 
      </ItemTemplate> 
     </asp:TemplateField> 

ответ

0

Вы заселение другое управление с помощью DropDownList SelectedValue в качестве параметра, который диктуется вашим кодом. В этом случае Вы упускаете недвижимость в controlParameter

<SelectParameters> 
    <asp:ControlParameter ControlID="DropDownList1" Property="SelectedValue" Name="Field3" Type="String" /> 
</SelectParameters> 

Если вы пытаетесь заполнить DropDownList1 вы полностью под откос. В этом случае вам нужно показать больше кода и деталей разметки.

Обновление: Вы не можете взять значение параметров из элемента управления DropDownList, который вы заполняете. Либо удалите параметр, либо используйте другой элемент управления, чтобы указать значение

+0

Извините, я не осознал, что я оставил часть выпадающего кода. Я отправил остальное –

+0

Вы хотите заполнить DropDownList1? Тогда вы не можете взять значение параметра из того же элемента управления. – Mubarek

+0

Я вижу - так что мне нужно будет взять значение параметра из другого места? У меня есть связанное поле для UserName, но кроме того, я не вижу, где еще я мог его получить. Нужно ли мне сделать новый контроль? –

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