0

やあ、追加したい 動的に WebUser コントロールをループに追加する

このcon1 con2 con3のように、多かれ少なかれループに応じて

これを行う良い方法はありますか

私の最初の試みはこのように見えます。しかし、次のものを使用するように指示する方法がわかりません grpCon2

        foreach (DataRow Group in AllGroups.Rows)
    {
        GroupListControl grpCon1 = new GroupListControl();
        grpCon1.NickName = "STUFF";
        grpCon1.GroupName = "HARD";

        LiteralAddCOntrols.Text = @"<uc1:GroupListControl ID=""GrpCOn1"" runat=""server"" />";

    }
4

3 に答える 3

2

loadcontrol(pathtoyourusercontrol) を使用してから、目的の場所にあるページにコントロールを戻す必要があります。

sharedUC uc = (sharedUC)LoadControl("~/sharedUC/control.ascx");
plcContent.Controls.Add(uc);

追加 :

ページ aspx にコントロールをロードすると、型付き参照を使用できるようになります。

于 2009-10-08T07:32:04.940 に答える
0

それは可能ですが、次の2つのことを覚えておく必要があります。

  1. あなたは彼らにIDを与える必要があります-そしてセッションでそれらを覚えておいてください
  2. コントロールがPostBackアクション(クリックなど)を実行する場合、添付されたイベントは発生しないため、Page_PreInitイベント(通常はフレームワークが実行します)のすべての投稿で正確なコレクションを更新する必要があります。また、Page_PreInitは、同じIDで正確なコレクションを更新する必要があります。

それは可能ですが、最初はそれほど単純ではありません。

そして、これがその方法の詳細な説明です。

http://aspnet.4guysfromrolla.com/articles/092904-1.aspx

于 2009-10-08T07:05:13.723 に答える
0

この方法を使用し、「updatePanel」を使用してコントローラーを動的に変更できます。

ここでは、Usercontroller クラス名として「userControls_DeviceController」を使用します。

userControls_DeviceController FAN1;
userControls_DeviceController FAN2;

protected void Page_Load(object sender, EventArgs e)
{
   FAN1 = (userControls_DeviceController)LoadControl("~/userControls/DeviceController.ascx");
   saloon.Controls.Add(FAN1);

   FAN2 = (userControls_DeviceController)LoadControl("~/userControls/DeviceController.ascx");
   saloon.Controls.Add(FAN2);
}

また、ユーザーコントロールをカスタマイズするために、ページにタイマーを配置し、updatepanel を使用して指定したユーザーコントロールのプロパティを変更できます。

protected void Timer1_Tick(object sender, EventArgs e)
{
    int counter = Convert.ToInt32(Session["c"]);
    FAN1.SetDeviceIndex(counter);//here I change usercontrol picture FAN1
    FAN2.SetDeviceIndex(counter);//here I change usercontrol picture FAN2
    counter++;
    if (counter == 4)//I have 4 picture to changing.
    {
       counter = 0;
    }
    Session["c"] = counter;
    UpdatePanel1.Update();
}

お役に立てば幸いです...

于 2014-10-01T10:57:05.197 に答える