Runtime Kontrol Üretme - Asp.Net
-
hocam şimdi benim şöle bi matrisim var 1 6 11 16
2 7 12 17
3 8 13 18
durum şöyle bu yandaki matris bnm sayfamdaki textboxların sırası
sıkıntı da şu bunları bn bi döngü kullanıp doldurmam gerekiyor şu kodla : TextBox1.Text = ds.Tables[0].Columns[0].ToString();
ama sıkıntı şu ki dizide ben bunu TextBox[i].Text olarak yazamıyorum ne yapabilirim ?
-
ASP degil ASP.net bu bahsettigin anladigim kadari ile.
bu komut ile objeyi buluyorsun : http://msdn.microsoft.com/tr-tr/library/486wc64h.aspx
private void Button1_Click(object sender, EventArgs MyEventArgs) { // Find control on page. Control myControl1 = FindControl("TextBox2"); if(myControl1!=null) { // Get control's parent. TextBox aText = (TextBox)myControl1
aText.Text = "asda"; } else { Response.Write("Control not found"); } } -
rakkoc bunu yazdı:
-----------------------------ASP degil ASP.net bu bahsettigin anladigim kadari ile.
bu komut ile objeyi buluyorsun : http://msdn.microsoft.com/tr-tr/library/486wc64h.aspx
private void Button1_Click(object sender, EventArgs MyEventArgs) { // Find control on page. Control myControl1 = FindControl("TextBox2"); if(myControl1!=null) { // Get control's parent. TextBox aText = (TextBox)myControl1
aText.Text = "asda"; } else { Response.Write("Control not found"); } }
-----------------------------evet hocam asp.net işte ama bu bi tane textbox için bnm yapmak istediğim textbox dizisi oluşturup onu bi döngüde kullanıp içine veritabanından gerekli verileri çekmek foreach döngüüsünde nasıl kullanabilirim textbox dizisini ?
-
kont239 bunu yazdı:
-----------------------------rakkoc bunu yazdı:
-----------------------------ASP degil ASP.net bu bahsettigin anladigim kadari ile.
bu komut ile objeyi buluyorsun : http://msdn.microsoft.com/tr-tr/library/486wc64h.aspx
private void Button1_Click(object sender, EventArgs MyEventArgs) { // Find control on page. Control myControl1 = FindControl("TextBox2"); if(myControl1!=null) { // Get control's parent. TextBox aText = (TextBox)myControl1
aText.Text = "asda"; } else { Response.Write("Control not found"); } }
-----------------------------evet hocam asp.net işte ama bu bi tane textbox için bnm yapmak istediğim textbox dizisi oluşturup onu bi döngüde kullanıp içine veritabanından gerekli verileri çekmek foreach döngüüsünde nasıl kullanabilirim textbox dizisini ?
-----------------------------kontrolleri runtime da üretip değer verebilirsin.
Textbox txt1 = new Textbox();
txt1.text = "hede";
sayfaya bi div at. runtime="server" ve id ver
<div runtime="server" id ="textboxdiv"></div>
textboxdiv.controls.add(txt1); gibi gibi uzun zamandır yazmıyorum webform 2 yıl olmuş :D
bu dediğimi inline yaparsan daha rahat olur
-
burada istediğin gibi bir örnek var. bence kontrolleri dinamik olarak oluştur. koddaki for döngüsüne de o textbox için değer girdir..
yapman gereken dışarıdan harici bir sayaç tanımlamaktır ve onu da ikinci for un içinde değerini artırmaktır yani
int sayac=0;
ilk for...
...
ikinci for...
Textbox tb = new TextBox();
tb.ID = "TextBoxRow_" + i + "Col_" + j;
tb.Text = ds.Tables[0].Columns[sayac].ToString();
sayac++;
bu mantıkla yaparsan hem textboxları eklersin dinamik olarak hem de tablodan verileri çekip textbox a eşitlersin..
ikinci yol olarak da, eğer formnda başka textbox yoksa bir foreach döngüsüyle form.controls. gibi bir sınıfdan tüm textboxları collection türünden al ve tek tek ve yine bir sayaç eşliğinde tek tek değerlerini yazdır. ama daha profesyonel bir yaklaşım olması için bence ilk verdiğim linki kullan. Hatta veritabanından(ya da her neyse) gelen satır ve sütün sayılarına göre dinamik olarak ayarlarsın. Kodda geçen i ve j değerlerini tables in rows.count ve columns countuna göre ayarlarsan süper bir esneklik kazandırırsın programa..
anlaadığın yeri sorabilirisin kolay gelsn
-
-----------------------------
kontrolleri runtime da üretip değer verebilirsin.
Textbox txt1 = new Textbox();
txt1.text = "hede";
sayfaya bi div at. runtime="server" ve id ver
textboxdiv.controls.add(txt1); gibi gibi uzun zamandır yazmıyorum webform 2 yıl olmuş :D
bu dediğimi inline yaparsan daha rahat olur
-----------------------------ya aslında kontrol le işim yok döngü yü yaptım ama çıkamadım bu sefer :) sonsuz a daldı belgedeki veri bittiğinde kapanmasını istiyorum kod şöyle
foreach (TextBox item in dizi)
{
for (int i = 0;i<4 ; i++)
{
item.Text = ds.Tables[0].Columns[i].ToString();
for (int j = 0; j<4; j++)
{
item.Text = ds.Tables[0].Rows[i][j].ToString();
}
}
}
-
void bulDegistir(int i,string newValue)
{// Find control on page. Control myControl1 = FindControl("TextBox" + i);
if(myControl1!=null) { // Get control's parent. TextBox aText = (TextBox)myControl1
aText.Text = newValue; } else { Response.Write("Control not found"); }}
bulDegistir(1,"ASD");
yada
for(int i = 1; i < 10; i++)
{bulDegistir(i, i.toString() + "atla deve");
}
-
çözüldü fikierlr için tekrar teşekkürler :)
