2

ドロップダウン リストで選択した項目をデータベースに挿入したいのですが、ドロップダウン リストが最初のオプションを返します。自動ポストバックは false です。ここにコード:

dropTask() = データベースから入力するドロップダウン リスト。

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


    }

    protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {


        String pathdirectory = (dropListActivity.SelectedItem.Text+"/");
        String filepathImage = (pathdirectory + e.FileName);

        EnsureDirectoriesExist(pathdirectory);

        AjaxFileUpload1.SaveAs(Server.MapPath(filepathImage));


        Session["filepathImage"] = filepathImage;

    }

label を使用して、ドロップダウン リストから返される値を確認しました。

   protected void btnDone_Click(object sender, EventArgs e)
    {
        if (Session["filepathImage"] != null)
        {
            string filepathImage = Session["filepathImage"] as string;


            Label1.Text = filepathImage;

        }

    }

ラベル テキストには、選択した選択肢ではなく、ドロップダウン リスト値の最初のオプションが表示されます。これについて教えてください。

ASPX:

<tr>
    <td>
        <h2>Upload your Story!</h2>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>

    </td>
</tr>

<tr>
<td colspan = "2"></td>
</tr>

<tr>
    <td>
        <b>Select Activity:</b>
    </td>
    <td> 

        <asp:DropDownList ID="dropListActivity" runat="server" 
            onselectedindexchanged="dropListActivity_SelectedIndexChanged">
        </asp:DropDownList>


    </td>

</tr>

<tr>
<td colspan = "2"></td>
</tr>

<tr>
    <td>
        <b>Story Title:</b>
    </td>
    <td>
        <asp:TextBox ID="txtStoryTitle" runat="server" 
            ontextchanged="txtTitle_TextChanged" AutoPostBack="True"></asp:TextBox>
    </td>
</tr>

<tr>
    <td class="style1">
          <b>Upload your files here:</b><br />
          Multiple Images and 1 Audio file only.
    </td>
    <td class="style1">
        <asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server" 
            onuploadcomplete="AjaxFileUpload1_UploadComplete" 
             /> 
    </td>
</tr>

<tr>
<td colspan = "2"></td>
</tr>

<tr>
    <td>
        <asp:Label ID="Label1" runat="server" ></asp:Label>
    </td>

    <td>
        <asp:Button ID="btnDone" runat="server" Text="Done" onclick="btnDone_Click" />
    </td>
</tr>
4

3 に答える 3

2

DropListActivity.SelectedItem.ToStringトリックを行う必要があります。他にも注意すべき点がいくつかあります。

  1. ポストバックでドロップダウンリストにデータを入力していないことを確認してください。

  2. 選択した値は、ドロップダウン リスト コントロールを含むページの部分がポスト バックされた場合にのみ、サーバーで使用可能になります。つまり、更新パネルを使用している場合は、ドロップダウン リストがそのパネル内に存在する必要があります。最初の基準を満たしていれば、まったく問題ありません。

  3. dropListActivity_SelectedIndexChangedページがポストバックされ、選択されたインデックスが変更された場合、イベント ハンドラーは常に起動されます。が実行された後、イベント ハンドラdropListActivity_SelectedIndexChangedが呼び出さpage_load subroutineれます。
于 2013-05-17T07:29:34.850 に答える