私は上記のコントロールを使用しています (これは ASP.NET のものであることに注意してください。JavaScript で書かれた同様の名前のコントロールを多くの人が使用しているようです)。プログレス バー、ドラッグ アンド ドロップ、その部分はすべて正常に動作しますが、ファイルと共に 2 つのデータを返す必要があります。具体的には、ユーザーが 2 つのテキスト ボックスから入力した緯度と経度です。アップロード コントロールは非同期であるため、テキスト ボックスの内容がポストバックされないため、アクセスできません。データをサーバーに送り返す ContextKeys というフックできるプロパティがあるようですが、それは静的フィールドであり、動的に操作する方法がわかりません。テキストボックスからontextchangedイベントをフックし、それらを使用してコンテキストキーを設定しようとしました。
ContextKeys プロパティをプログラムで設定する方法、またはアップロードでデータを送り返す別の方法はありますか?
コードは次のとおりです。
.ASPX
<div style="float:left; width: 325px;">
<cc1:AjaxFileUpload ID="AjaxFileUpload1" runat="server" Width="325px"
onuploadcomplete="UploadComplete" ClientIDMode="Static" />
<cc1:DynamicPopulateExtender ID="AjaxFileUpload1_DynamicPopulateExtender"
runat="server" Enabled="True" PopulateTriggerControlID=""
TargetControlID="AjaxFileUpload1">
</cc1:DynamicPopulateExtender>
</div>
<div style="float:left">Latitude:
<asp:TextBox ID="tbUploaderLat" runat="server"
ontextchanged="tbUploaderLat_TextChanged" AutoPostBack="True"></asp:TextBox><br />
Longitude:
<asp:TextBox ID="tbUploaderLon" runat="server"
ontextchanged="tbUploaderLon_TextChanged" AutoPostBack="True"></asp:TextBox>
</div>
コード ビハインド:
protected void UpdateLatLon() //this is called from the two events above
{
AjaxFileUpload1.ContextKeys = tbUploaderLat.Text + "|" + tbUploaderLon.Text;
}