EastSea2 Ответов: 1

Selectedindexchanged не работает корректно при использовании masterpagefile


Пожалуйста помочь.
У меня есть блок кодов, которые не работают правильно, когда используется MasterPageFile.


Он работает без MasterPageFile.
Если изменения управления dropdownlist в GridView с данными дисплеями.
Но с файлом MasterPageFile нет отображения данных.
Он кажется отправленным назад, когда dropdownlist изменяется, но SelectParameters (@KO_EGScore) не могут быть распознаны.

Вот мой код
<form id="form1" runat="server">
    <div>
    <h4>List KO Number Genes Data <asp:Label ID="Label1" runat="server" Text="" CssClass="indent small navy"></asp:Label></h4>
     <p>
         <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="KO_EGScore" DataValueField="KO_EGScore" AppendDataBoundItems="true">
             <asp:ListItem Value="">(Please select)</asp:ListItem>
         </asp:DropDownList>
         <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ws_ePathConnectionString %>" SelectCommand="SELECT DISTINCT top(10)  [KO_EGScore] FROM [b_KO_2_EGScore] ORDER BY [KO_EGScore]"></asp:SqlDataSource>
     </p>
     <p>
         <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" CellPadding="4"  DataSourceID="SqlDataSource2" ForeColor="#333333" GridLines="None">
            
         </asp:GridView>
         <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ws_ePathConnectionString %>" SelectCommand="SELECT  top(10) * FROM [b_ko_orgGenes] WHERE ([koNbr] = @KO_EGScore)">
             <SelectParameters>
                 <asp:FormParameter FormField="DropDownList1" Name="KO_EGScore" Type="String" />
             </SelectParameters>
         </asp:SqlDataSource>
     </p>
     
    </div>
    </form>


Что я уже пробовал:

Я попробовал
ClientIDMode="Статический",
ScriptManager, и
AutoEventWireup="true" ,
ни один из них не сработал.

1 Ответов

Рейтинг:
1

Richard Deeming

Использовать ControlParameter[^] вместо:

<asp:ControlParameter Name="KO_EGScore" Type="String" ControlID="DropDownList1" PropertyName="SelectedValue" />

То FormParameter ищет разнесенное значение с указанным именем. Помещение элемента управления в контейнер именования изменит имя, используемое для отправки значения обратно на сервер. Изменение ClientIDMode на имя это никак не повлияет.