PDA

View Full Version : Update همزمان چند رکورد در GridView



aliblue
یک شنبه 15 اردیبهشت 1392, 17:58 عصر
با سلام.فرض کنید در template یک گرید ویو ، یک HiddenField قرار دادیم که به کلید اصلی جدول بایند شده و یک TextBox که به فیلد Name بایند شده.یعنی می توان مقدار تمام تکست باکس ها را تغییر داد.
حالا در بیرون از GridView یک Button هست که می خواهم با کلیک بر روی آن تمام فیلد ها بروزرسانی شوند.
چطور باید اینکار رو انجام بدم؟

hessam2003
یک شنبه 15 اردیبهشت 1392, 18:19 عصر
سلام.
شما میتونید از این دو روش استفاده کنید:
103745

ahmad156
یک شنبه 15 اردیبهشت 1392, 18:36 عصر
http://aspsnippets.com/Articles/Bulk-Edit-Update-Multiple-Rows-in-ASPNet-GridView-using-CheckBoxes.aspx

aliblue
یک شنبه 15 اردیبهشت 1392, 21:03 عصر
ممنون.با SqlDataSource چطوری میشه؟
چطوری پارامترهای SqlDataSource را با کنترل های گریدویو مقداردهی کنم؟

ahmad156
دوشنبه 16 اردیبهشت 1392, 08:11 صبح
دوست عزیز به هیچ عنوان خودتون رو به SqlDataSource و از این قبیل کنترل هایی که خودتون میتونین پیاده سازی کنین عادت ندین!!:لبخندساده:

aliblue
دوشنبه 16 اردیبهشت 1392, 08:37 صبح
یه جور دیگه انجامش دادم.برای نمایش از SqlDataSource استفاده کردم و برای Update از کد زیر:


protected void btnUpdate_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{

SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["updateConnectionString"].ConnectionString;

SqlCommand cmd = new SqlCommand("UPDATE person SET F1 = @F1 WHERE FID=@FID");
Label lbl = (Label)row.FindControl("Label1");
TextBox txt = (TextBox)row.FindControl("TextBox1");
cmd.Parameters.AddWithValue("@F1", txt.Text);
cmd.Parameters.AddWithValue("@FID", lbl.Text);

cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();


}
}


GridView1.DataBind();
}


ولی اگر به جای گریدویو بخواهم از Repeater استفاده کنم، چه تغییری در کد باید بدم؟

ahmad156
دوشنبه 16 اردیبهشت 1392, 08:47 صبح
به جای Rows باید از Items استفاده کنین.