2

RadUpload コントロールを使用しようとしていますが、任意のボタンでページのポストバックをクリックします。これを回避するために、updatePanel を使用し、updatePanel にボタンを配置して、部分的なポストバックのみが発生するようにしています。これは、ポストバック時に RadUpload コントロールの値が失われるためです。私はすべてのコントロールを動的に作成していますが、asp.net と C# の初心者であるため、これは難しいことです。

コードは次のとおりです。

Button aButton = new Button();
aButton.ID = newControls[1].ID + "_Button";
aButton.Click += new EventHandler(aButton_Click);
aButton.UseSubmitBehavior = false;

AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = aButton.ID;
trigger.EventName = "Click";

UpdatePanel container = new UpdatePanel();
container.ID = newControls[1].ID + "_Container";
container.ChildrenAsTriggers = true;
container.UpdateMode = UpdatePanelUpdateMode.Conditional;
container.Triggers.Add(trigger);
container.ContentTemplateContainer.Controls.Add(aButton);

tcControl.Controls.Add(container);

static void aButton_Click(object sender, EventArgs e)
{
    // Do Something
}

私はおそらく非常に間違ったことをしていることを知っていますが、アドバイスは素晴らしいでしょう. ありがとう!

4

2 に答える 2

0

ポストバック時にコントロールを再度作成していますか? 悪いことを覚えていない場合は、init または preinit でコントロールを再度作成して、viewstate がそれらに読み込まれるようにする必要があります。

このビデオhttp://www.asp.net/web-forms/videos/aspnet-ajax/how-to-dynamically-add-controls-to-a-web-pageは、似たようなものを示していると思います。職場の PC で自分のコードを探すことができます。

それが役に立てば幸い!

于 2012-06-09T17:19:19.647 に答える
0

このアップロード コントロールをページから完全に削除し、代わりに外部アップロード ページ (単なるポップアップ) をロードするボタンに置​​き換えることで、この問題を解決しました。当初意図していた解決策を見つけることができませんでしたが、現在の解決策が今のところすべてです。

于 2012-06-18T13:10:10.623 に答える