PDA

View Full Version : مشکل در اضافه کردن کنترل textbox با استفاده از کد سمت سرور



malloc
سه شنبه 13 فروردین 1392, 12:49 عصر
سلام دوستان.

من با استفاده از کدهای زیر میخوام که به صفحه textbox اضافه کنم اما نمیدونم چرا بیشتر از یدونه رو اضافه نمیکنه

int temp;
protected void Button2_Click(object sender, EventArgs e)
{

TextBox t1 = new TextBox();
t1.ID = "txt" + Session["counter"].ToString();
string s = "txt" + Session["counter"].ToString();
Panel1.Controls.Add(t1);
t1.Dispose();
temp = (int)Session["counter"];
temp++;
Session["counter"] = temp;
}


شمارنده درست کار میکنه .
لطفا کمک کنید
اینم فایل نمونه

102203

mahdisky
سه شنبه 13 فروردین 1392, 15:25 عصر
سلام
ببین مشکل اینجاست که وقتی روی دکمه میزنی دستورات اجرا میشه و txt رو میسازه حالا با هر id که باشه
بعد که دوباره میزنی روی دکمه postback اتفاق می افته و دکمه که ساخته بودی از بین میره (چون دکمه رو که دیگه نگه نمی داره )و دوباره که بزنی روی دکمه دوباره یه txt میسازه با id که داده بودی به sessin .
یعنی عملا فقط باید یه دکمه ساخته بشه و با هر postback فقط id و txt name اون تغییر میکنه والا txt فقط یکی هست. حالا نمیدونم منظورمو متوجه شدی که چرا یکی میسازه.
برای اینکه مشکل حل شه حالا باید کاری کنی که txt رو که ساختی نگه داره .

bftarane
سه شنبه 13 فروردین 1392, 17:55 عصر
اين لينک به دردت مي خوره
http://www.aspsnippets.com/articles/creating-dynamic-textbox-controls-in-asp.net.aspx

malloc
سه شنبه 13 فروردین 1392, 22:10 عصر
اين لينک به دردت مي خوره
http://www.aspsnippets.com/articles/creating-dynamic-textbox-controls-in-asp.net.aspx
دستت درد نکنه اما اون سایت لینک دانلودش کار نمیکنه . اگه داری خودت فایلشو بزار

malloc
سه شنبه 13 فروردین 1392, 22:12 عصر
سلام
ببین مشکل اینجاست که وقتی روی دکمه میزنی دستورات اجرا میشه و txt رو میسازه حالا با هر id که باشه
بعد که دوباره میزنی روی دکمه postback اتفاق می افته و دکمه که ساخته بودی از بین میره (چون دکمه رو که دیگه نگه نمی داره )و دوباره که بزنی روی دکمه دوباره یه txt میسازه با id که داده بودی به sessin .
یعنی عملا فقط باید یه دکمه ساخته بشه و با هر postback فقط id و txt name اون تغییر میکنه والا txt فقط یکی هست. حالا نمیدونم منظورمو متوجه شدی که چرا یکی میسازه.
برای اینکه مشکل حل شه حالا باید کاری کنی که txt رو که ساختی نگه داره .
خوب دوست عزیز این درست اما من چطور تو صفحه نگه دارمش .

asadi.hasan
سه شنبه 13 فروردین 1392, 23:08 عصر
دستت درد نکنه اما اون سایت لینک دانلودش کار نمیکنه . اگه داری خودت فایلشو بزار
سلام ؛
این فایل ،همون برنامه ای است که در سایت بود.
102218

***BiDaK***
جمعه 16 فروردین 1392, 01:45 صبح
نمونه کد:


<asp:HiddenField ID="hdnCount" Value="1" runat="server" />
<asp:Table ID="tblMain" runat="server">

</asp:Table>
<asp:Button ID="BtnInsert" runat="server" Text="Insert" onclick="BtnInsert_Click" />




protected void Page_Load(object sender, EventArgs e)
{
CreateTextBoxes();
}

private void CreateTextBoxes()
{
int count = int.Parse(hdnCount.Value);
for (int i = 2; i <= count; i++)
{
TextBox t1 = new TextBox();
t1.ID = "txtName" + i.ToString();
t1.Width = 200;
t1.Text = Request.Form["txtName" + i.ToString()];
TableRow tr = new TableRow();
TableCell tc = new TableCell();
tc.Controls.Add(t1);
tr.Cells.Add(tc);

TextBox t2 = new TextBox();
t2.ID = "txtFamily" + i.ToString();
t2.Width = 200;
t1.Text = Request.Form["txtFamily" + count.ToString()];
tc.Controls.Add(t2);
tr.Cells.Add(tc);
tblMain.Rows.Add(tr);
}
}
public int y;
protected void BtnInsert_Click(object sender, EventArgs e)
{
int count = int.Parse(hdnCount.Value);
count++;
hdnCount.Value = count.ToString();

TextBox t1 = new TextBox();
t1.ID = "txtName" + count.ToString();
t1.Width = 200;
t1.Text = Request.Form["txtName" + count.ToString()];

TableRow tr = new TableRow();
TableCell tc = new TableCell();


tc.Controls.Add(t1);
tr.Cells.Add(tc);
tblMain.Rows.Add(tr);

TextBox t2 = new TextBox();
t2.ID = "txtFamily" + count.ToString();
t2.Width = 200;
t1.Text = Request.Form["txtFamily" + count.ToString()];
tc.Controls.Add(t2);
tr.Cells.Add(tc);
tblMain.Rows.Add(tr);
}

mahdisky
جمعه 16 فروردین 1392, 04:38 صبح
سلام protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Session.Add("counter", 0);

if ((int)Session["counter"] != 0)
{
y = (int)Session["counter"];


int i = 0;
for (i = 0; i < y; i++)
{
TextBox t1 = new TextBox();

t1.ID = "txt" + i.ToString();

string s = "txt" + i.ToString();

Panel1.Controls.Add(t1);

t1.Dispose();
}
}

}

public int y;
protected void Button2_Click(object sender, EventArgs e)
{
y = (int)Session["counter"];
y++;
Session["counter"] = y;


TextBox t1 = new TextBox();

t1.ID = "txt" + y.ToString();

string s = "txt" + y.ToString();

Panel1.Controls.Add(t1);

t1.Dispose();


}