4

ここで初めて質問します。

私は DNN モジュールを作成しており、Setting.ascx に任意の形式の FileUpload を追加しようとしています。ASP の FileUpload と Telerik の RadUpload を追加することに成功しましたが、アップロードしたファイルを保存して調べるために追加したボタンをクリックすると、ファイルは空になり、データが保持されなくなりました。最初はコーディングが間違っていると思っていましたが、View.ascx に追加すると、完全に機能します。もちろん、それは私が望んでいるところではありません。

問題は、Setting.ascx が DNN でどのように機能するかにあると思います。AJAX の形式を使用して表示しているため、干渉している可能性があると思います。言いにくいけど。私がいる間、Setting.ascx が AJAX を使用していて、ボタンのクリックが非同期ポストバックを引き起こすことを誰でも確認できますか? ありがとう。

4

3 に答える 3

3

UpdatePanelフォームが AJAX (以前は 経由、現在は DNN 6.x では経由)を使用しているというあなたの考えは正しいです。それRadAjaxPanelがアップロードを妨げているのです。ほとんどのシナリオでは、 を呼び出して通常のポストバックに切り替えるだけですが、設定の場合、設定を保存するScriptManager.RegisterPostBackControlへの直接参照はありません。LinkButton

ユーザーがファイルを選択した後にアップロードを行うには、おそらく独自のボタンをフォームに追加する必要があります。DNN 自身UrlControlもそのようなシステムを使用しており、[参照] ボタンの横に [アップロード] ボタンがあります。DNN には新しいDnnFilePickerコントロールもあり、必要なものをカプセル化することもできます。@ Registerそれらを使用するには、ディレクティブを追加するだけです。例えば:

<%@ Reference tagPrefix="dnn" tagName="UrlControl" Src="~/controls/URLControl.ascx" %>
<%@ Reference tagPrefix="dnn" Assembly="DotNetNuke.Web" Namespace="DotNetNuke.Web.UI.WebControls" %>

<dnn:UrlControl runat="server" ID="FileUpload" 
                ShowLog="false"
                ShowNewWindow="false"
                ShowTrack="false"
                ShowImages="false"
                ShowNone="false"
                ShowTabs="false"
                ShowUrls="false"
                ShowUsers="false"
                ShowFiles="false"
                ShowUpLoad="true" />

<dnn:DnnFilePicker runat="server" ID="FilePicker"
                   FileFilter="jpg,png,gif" />
于 2012-03-21T12:48:25.697 に答える
0

男、updatepanel を ascx コントロールの外に置かないでください updatepanel を使用する必要がある場合は、ascx の中に入れてください。それはあなたの問題を解決します!

于 2013-12-05T11:29:38.850 に答える