Merhaba arkadaşlar;
Bu makalemde dinamik olarak usercontrol eklerken aynı zamanda parametre göndermeyi anlatmaya çalıştım.
İşlem çok basit UserControl mimarisini alrak kendimiz bir class oluşturuyoruz ve get set değerleri ile ViewState de değerimizi tutuyoruz.Oluşturduğumuz class adınıda usercontrol ümüzde belirtiyoruz.
Bu konu ile ilgili çok fazla kaynak bulamadım açıkçası benide çok uğraştırdı. Türkçe kaynak olmadığı için sizlerle paylaşmak istedim.
İlk olarak Bir Class oluşturuyoruz ve UserControl sınıfından class ımızı yaratıyoruz.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for Class1
/// </summary>
public class MyBaseControl : System.Web.UI.UserControl
{
public string DEGER
{
get { return ViewState["MyDEGER"] as string; }
set { ViewState["MyDEGER"] = value; }
}
}
Daha sonra sayfamıza bir webusercontrol ve bir tane aspx sayfamızı atıyoruz. Siz isterseniz user controller arasındada yapabilirsiniz bu işlemi.
Default.aspx
Sayfamıza bir tane PlaceHolder atıyoruz
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
#region Properties
MyBaseControl uc = (MyBaseControl)LoadControl("User1.ascx");
uc.DEGER = i.ToString();
#endregion
PlaceHolder1.Controls.Add(uc);
}
}
}
User1.ascx
Sayfamıza bir tane Literal atıyoruz siz ne atmak isterseniz ben Literal attım
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
//public partial class User1 : System.Web.UI.UserControl
//yerine kendi oluşturduğumuz MyBaseControl classını verdik
public partial class User1 : MyBaseControl
{
protected void Page_Load(object sender, EventArgs e)
{
Literal1.Text = "Değer : "+DEGER+"</br>";
}
}
İşte bu kadar for döngüsüne aldığımızda i den gelen her değer artık usercontrol ümüze gönderilecektir ;)
Çalışma dosyasını aşağıdaki link ten indirebilirsiniz.
Download_Click :)
ömer7/1/2015 11:14:18 AM
Çok beğendiğim ve uzun süredir takip ettiğim bir sitedir. Bunun gibi bir çok konuda paylaşım yapıyor ve hepsi özgün paylaşımlardır. Tavsiye ederim.