2012-03-05 6 views
1

AsyncFileUploadコントロールで画像をアップロードしています。AsyncFileUploadコントロールを使用して画像をアップロードした後に非表示フィールドの値を更新します。

オンUploadedCompleteScriptManager.RegisterClientScriptBlockを使用して、非表示フィールドに値を割り当てようとしています。

HTML:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" CombineScripts="false"> 
</asp:ToolkitScriptManager> 
<div> 
    <asp:AsyncFileUpload ID="uplImage" OnUploadedComplete="uplImage_UploadedComplete" 
     runat="server" Width="285px" ClientIDMode="AutoID" EnableViewState="false" /> 
    <asp:HiddenField runat="server" ID="hdnTempImgNm" />  
    <input type="button" id="btnCheck" value="Check" class="btnCheck" /> 
</div> 

イベントハンドラ:

protected void uplImage_UploadedComplete(object sender, EventArgs args) 
    { 
     //1 case: 
     //ScriptManager.RegisterClientScriptBlock(uplImage, uplImage.GetType 
     // (), "myscript", 
     //String.Concat(" $(document).ready(function(){$('input:hidden 
     // [name*=\"hdnTempImgNm\"]').val('Some value');})"),true); 

     //2 case: 
     ScriptManager.RegisterClientScriptBlock(uplImage, uplImage.GetType 
     (), "myscript", 
     String.Concat("top.document.getElementById('" + hdnTempImgNm.ClientID 
     + "').value='Some value'; "),true); 
    } 

のjavascript:私は隠された申請値Iをチェックするためのチェックボタンをクリックして1場合

<script> 
    $(document).ready(function() {  
     $('.btnCheck').click(function (e) { 
      alert($('input:hidden[name*="hdnTempImgNm"]').val()); 
     }); 
    }) 
</script> 

空の値を取得します。しかし、私がtop.documentを使用する2つのケースでは、正しい値、すなわち「ある値」を得る。

私の質問は: 1.なぜ1つのケースが動作しないのですか? 2. jqueryを使用して2つのケースを書き換えるにはどうすればよいですか(top.documentの書き方など)?

ありがとう

答えて

0

AsyncFileUploadはiframeを使用しています。このため、top.documentだけがこの場合に動作します。 参照リンクhttp://www.mikeborozdin.com/post/AJAX-File-Upload-in-ASPNET-with-the-AsyncFileUpload-Control.aspx

だから、最初のケースでは、この

ScriptManager.RegisterClientScriptBlock(uplImage、uplImage.GetType()、 "にMyScript"、String.Concat(」$(ドキュメント).ready(関数(のようにする必要があります.val(\ "Some value \");}) ")、true); $ {

0

最初のケース:これは、非表示フィールドが読み込まれていないためです。 したがって、代わりに書くこと

$(document).ready(function() {  
//your code 
} 

if you write 

function pageLoad(){ 
    //you will find hidden field 
} 
+0

隠しファイルが読み込まれました。alert($( 'input:hidden [name * = \ "hdnTempImgNm \"]))attr(\ "id \"))を使用してチェックすることができます。私はあなたの提案を試みましたが、残念ながらうまくいきません。 – Elistan

関連する問題