-1

ページの起動時に自動的に表示されるモーダルポップアップがあります。私は Page_Load イベントでこれをやっています。

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            InitiallizeAll();
        }
    }

    private void InitiallizeAll()
    {
        ModalPopupExtender1.Show();
    }

aspx 側では、modalpopup にドロップダウンリストがありますが、インデックスは常に JavaScript コードにゼロを投稿しています。

    <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"           
                            TargetControlID="lnkPopup"
                            PopupControlID="panEdit" 
                            BackgroundCssClass="modalBackground" 
                            OkControlID="btnGonder"
                            OnOkScript="onOk()">
    </asp:ModalPopupExtender>
<asp:Panel ID="panEdit" runat="server" Height="180px" Width="400px" CssClass="modalPopup">
    <table width="100%">
        <tr>
            <td class="labelCell">
                <asp:Label ID="lblBolge" Text="Bölge" runat="server" />
            </td>
            <td>
                <asp:DropDownList ID="ddlIl" runat="server" 
                                  AutoPostBack="False" 
                                  DataTextField="Isim"
                                  DataValueField="Id" 
                                  DataSourceID="ObjectDataSource1" 
                                  Width="176px">
                </asp:DropDownList>
                <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
                                      SelectMethod="GetAllIl"
                                      TypeName="ERK.Lasos.Business.CustomEntities.Il">
                    <SelectParameters>
                        <asp:QueryStringParameter DefaultValue="0" 
                                                  Name="ilId" 
                                                  QueryStringField="bolge"
                                                  Type="Int32" />
                    </SelectParameters>
                </asp:ObjectDataSource>
            </td>
        </tr> 
    </table>
    <br />
    <asp:Button ID="btnGonder" runat="server" Text="Devam Et" />
</asp:Panel>
<a id="lnkPopup" runat="server">Show Popup</a>

そして、これは私のjavascriptコードです

        <script type="text/javascript">
        function onOk() {
        var e = document.getElementById("ddlIl");
        var selectedIlId = e.options[e.selectedIndex].value;
        window.location = "/Pages/AnaSayfa/LasosAnaSayfa.aspx?bolge=" + selectedIlId;
        }
        </script>

しかし、私は常にselectedIlIdが「0」になっています。ドロップダウンリストから選択した値が変更されない

4

1 に答える 1

0

まず、適切なインデックスが選択されているかどうかを確認する必要があります。:

一時的var selectedIlId = e.options[e.selectedIndex].value;に置き換えるvar selectedIlId = e.selectedIndex;

問題がなければ、Idフィールドが正しいことを確認してデータ ソースを確認する必要があります。これを行う最も簡単な方法はDataTextField="Id"、DropdownList に設定し、そこに表示される値を確認することです。

于 2012-05-03T13:45:40.500 に答える