PDA

View Full Version : ايجاد تغيير در محتواي يك كنترل، بعد از اين كه يك بار تغيير يافته



vahidd1
پنج شنبه 26 مرداد 1391, 11:37 صبح
سلام

من يك gridview دارم كه اطلاعات يك ركورد از اون رو با استفاده از querystring به يك formview فرستادم و بعد
اين اطلاعات رو از formview به برخي از كنترلهاي داخل يك جدول انتقال دادم(يك كنترل خالي مانده)

حالا اطلاعات داخل اين كنترلهاي جدول (مثلا textbox) رو تغيير مي دم و روي دكمه تغيير كه قبلا كد نويسيش كردم
كليك مي كنم تا در ديتابيس sqlserver اين تغييرات اعمال بشه، ولي هر دفعه همون اطلاعات قبلي به ديتابيس
ارسال مي شن ،مثل اينكه اصلا (textbox) رو تغيير ندادم.

(اين مشكل در مورد كنترل خالي كه خودم آن را پر مي كنم وجود ندارد)

ممنون مي شم اگه راهنماييم كنين

mohsen_f_b
پنج شنبه 26 مرداد 1391, 11:46 صبح
سلام

اطلاعات دریافتی از QueryString در Form_Load را درون PostBack قرار دهید مشکل حل می شود.
زمانی که اطلاعات به سمت سرور ارسال می گردد اگر از PostBack استفاده نکرده باشید اطلاعات همان Querystring جایگزین می شود.

موفق باشید

vahidd1
پنج شنبه 26 مرداد 1391, 12:35 عصر
ميشه يه كم بيشتر توضيح بدين

من فقط فيلد كليدي اون ركورد رو با querystring فرستادم

mohsen_f_b
پنج شنبه 26 مرداد 1391, 16:28 عصر
سلام

لطفا کد صفحه را بگزارید تا دقیقا راه کار گفته بشه. فقط کدهای همون صفحه رو بگذارید.

موفق باشید

vahidd1
پنج شنبه 26 مرداد 1391, 17:18 عصر
protected void Page_Load(object sender, EventArgs e)
{
lblerror.Visible = true;
btncontinue.Visible = false;
EditID.Text = Request.QueryString["Book"];
if (EditID.Text != "")
قسمت گرفتن اطلاعات از formview و قرار دادن آنها در كنترل هاي جدول.
{
Label Interface1 = (Label)FormView1.FindControl("BookNameLabel");
Title1.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCatLabel");
DDLBookCat.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCatNameLabel");
Catname.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookAuthorLabel");
Author.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookLanguageLabel");
Language.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookValueLabel");
Value.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCommentsLabel");
Camments.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookImageLabel");

btnsubmit.Text = "تغيير";
}
}
قسمت تاييد صحت و گرفتن اطلاعات داخل كنترل ها و فرستادن به ديتابيس
protected void btnsubmit_Click(object sender, EventArgs e)
{
int test1 = 0;
Random rnd = new Random();
string Title2 = "", Catname1 = "", Author1 = "", Language1 = "", Camments1 = "";
if (Title1.Text.Length >= 100) { lblerror.Text = "<br/>" + "عنوان نبايد بيشتر از 100 كاراكتر باشد"; test1 = 1; }
else Title2 = Title1.Text;
if (Catname.Text.Length >= 40){ lblerror.Text = "<br/>" + "نام گروه نبايد بيشتر از 40 كاراكتر باشد"; test1 = 1; }
else Catname1 = Catname.Text;
if (Author.Text.Length >= 50){ lblerror.Text = "<br/>" + "نام نويسنده نبايد بيشتر از 50 كاراكتر باشد"; test1 = 1; }
else Author1 = Author.Text;
if (Language.Text.Length >= 40) { lblerror.Text = "<br/>" + "زبان نبايد بيشتر از 40 كاراكتر باشد"; test1 = 1; }
else Language1 = Language.Text;
int Value1 = 1;
byte catid = Convert.ToByte(DDLBookCat.SelectedValue.ToString() );
try
{
Value1 = Int32.Parse(Value.Text);
}
catch { }
if (Camments.Text.Length >= 1000) { lblerror.Text = "<br/>" + "توضيحات نبايد بيشتر از 1000 كاراكتر باشد"; test1 = 1; }
else Camments1 = Camments.Text;

string fileName = Path.GetFileNameWithoutExtension(PhotoUpload.FileN ame) +
rnd.Next(1000, 10000).ToString();
string ext = Path.GetExtension(PhotoUpload.FileName);
fileName = fileName + ext;
if (PhotoUpload.HasFile)
{
if (!CheckFileType(PhotoUpload.FileName))
{
lblerror.Text = "<br/>" + "نوع فايل عكس نادرست مي باشد "; test1 = 1;
}
else if (!CheckFileSize(PhotoUpload))
{
lblerror.Text = "<br/>" + "حجم فايل عكس بزرگ است"; test1 = 1;
}
}
if (Title1.Text == "" || Catname.Text == "" || Author.Text == "" || Language.Text == "" || Value.Text == "")
{
lblerror.Text += "<br />" + "لطفا اطلاعات را کامل وارد كنيد "; test1 = 1;
}
if (test1 == 0)
{
MarketDataSetTableAdapters.tblBookTableAdapter adapter = new
MarketDataSetTableAdapters.tblBookTableAdapter();
در اين قسمت اگه querystring خالي باشه كتاب جديد به ديتابيس اضافه ميشه
و اگه پر باشه كتاب تغيير پيدا مي كنه.
if (EditID.Text == "")
adapter.AddBook(Title2, catid, Catname1, Author1, Language1, Value1,
Camments1, fileName);
else
{
int intID = 0;
try
{
intID = Int32.Parse(EditID.Text);
}
catch { }
adapter.EditBook(Title2, catid, Catname1, Author1, Language1, Value1,
Camments1, fileName, intID);
ClientQueryString.Remove(0); EditID.Text = string.Empty;
}
PhotoUpload.PostedFile.SaveAs(MapPath("~/Images/" + fileName));
lblresult.Visible = true; btncontinue.Visible = true;
}
}

mohsen_f_b
پنج شنبه 26 مرداد 1391, 22:58 عصر
سلام

این تیکه کد را در Page_load بزارید در IsPostBack

EditID.Text = Request.QueryString["Book"];
if (EditID.Text != "")
قسمت گرفتن اطلاعات از formview و قرار دادن آنها در كنترل هاي جدول.
{
Label Interface1 = (Label)FormView1.FindControl("BookNameLabel");
Title1.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCatLabel");
DDLBookCat.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCatNameLabel");
Catname.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookAuthorLabel");
Author.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookLanguageLabel");
Language.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookValueLabel");
Value.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCommentsLabel");
Camments.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookImageLabel");

btnsubmit.Text = "تغيير";
}




به این شکل می شود

if (!IsPostBack)
{
EditID.Text = Request.QueryString["Book"];
if (EditID.Text != "")
قسمت گرفتن اطلاعات از formview و قرار دادن آنها در كنترل هاي جدول.
{
Label Interface1 = (Label)FormView1.FindControl("BookNameLabel");
Title1.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCatLabel");
DDLBookCat.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCatNameLabel");
Catname.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookAuthorLabel");
Author.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookLanguageLabel");
Language.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookValueLabel");
Value.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookCommentsLabel");
Camments.Text = Interface1.Text;
Interface1 = (Label)FormView1.FindControl("BookImageLabel");

btnsubmit.Text = "تغيير";
}
}


موفق باشید

vahidd1
جمعه 27 مرداد 1391, 09:58 صبح
تشكر،تشكر،تشكر
عالي بود
خيلي ممنون