0

プロジェクトを作成するためにasp.net c#を使用しています。データベースから取得した車のモデルを含むドロップダウン リストがあるパーツを作成する必要があります。その後、ドロップダウン リストで新しい値が選択されるたびに (ページ全体を更新せずに) パネルのコンテンツを変更する必要があります。

次のコードを使用してみました:

 <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataTextField="MODEL" Height="39px" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" Width="151px">
        </asp:DropDownList>
<asp:ScriptManager id="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>           
        <br />            
        <div id="finalDisplay" runat="server"></div>            
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger controlid="DropDownList1" EventName="SelectedIndexChanged" />
    </Triggers>
</asp:UpdatePanel>

ここで使用すべき構造は updatePanel だと思います。したがって、データベースにも保存されているすべてのコメントを表示するには、id finalDisplay を持つ div が必要です。これが私のコードです:

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {

        //get car id from database
        string model = DropDownList1.SelectedValue.ToString();
        string sql1 = "SELECT CAR_ID FROM CARS WHERE MODEL='" + model + "'";
        string[] attr1 = { "CAR_ID"};
        List<String> cid = getList(sql1, attr1);
        string car_id = cid[0].ToString().Trim();
        //get all comments stored in the database for that car
        string sql2 = "SELECT USER_ID,CONTENT FROM COMMENTS where car_id='" + car_id + "'";
        string[] attr2 = { "CONTENT" };
        List<String> contents = getList(sql2, attr2);
        string class_names= "usernames";
        string class_contents= "contents";
        for (int i = 0; i < contents.Count-1; i++) {
            string uid = contents[i];
            string tmp_sql = "Select user_name from users where user_id='" + uid + "'";
            string[] tmp_attr={"USER_NAME"};
            List<String> tmp_list=getList(tmp_sql,tmp_attr);
            finalDisplay.InnerHtml += "<p class="+class_names+">" + tmp_list[0] + ":</p>";
            finalDisplay.InnerHtml += "<p class="+class_contents+">" + contents[i + 1] + "</p>";
            i = i + 1;
        }
    }

id finalDisplay の div では何も起こらず、空です。私は何を間違っていますか?初めてajaxを使用します(これがajaxの場合でも)。

4

1 に答える 1

0

DropDownListの内部を移動しUpdatePanelます。

于 2013-07-02T14:55:49.503 に答える