PDA

View Full Version : سوال: قرار دادن تکست باکس در گریدویو و آپدیت آن



asrah6
شنبه 06 آذر 1389, 01:36 صبح
از طریق تمپلت فیلد در گرید ویو تکست باکس گذاشته ام و آنرا به جدول بایند کرده ام در این جدول 14 رکورد دارم نمی دونم چگونه با وارد کردن یکبار مقادیر همه تکست باکس ها آنرا یکبار اپدیت کنم نه اینکه با کلیک روی edit جدا جدا آپدیت شوند؟؟؟؟
لطفا راهنمایی کنید

majnun
شنبه 06 آذر 1389, 02:48 صبح
یعنی میخوای کاربر همه نمرات را که تغییر داد تو دوباره کل نمرات را اپدیت کنی ؟

خب باید یک حلقه بنویسی که هربار مقدارر id در هر سطر و نمره را بگیره و اپدیت کنه

asrah6
شنبه 06 آذر 1389, 03:15 صبح
در این سایت (http://csharpdotnetfreak.blogspot.com/2009/05/edit-multiple-records-gridview-checkbox.html) یک تمپلیت فیلد و چک باکس گذاشته ومن هم همین کار را کردم ولی ارور می دهد. این هم کد :

string strConnection = ConfigurationManager.ConnectionStrings
["ConnectionString"].ConnectionString;

private bool tableCopied = false;
private DataTable originalTable;

protected void GridView1_RowDataBound
(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (!tableCopied)
{
originalTable = ((System.Data.DataRowView)
e.Row.DataItem).Row.Table.Copy();
ViewState["originalValues"] = originalTable;
tableCopied = true;
}
}
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
originalTable = (DataTable)ViewState["originalValues"];
foreach (GridViewRow row in GridView1.Rows)
if(IsRowModified(row))
{
GridView1.UpdateRow(row.RowIndex,false);
}
tableCopied = false;
GridView1.DataBind();
}

protected bool IsRowModified(GridViewRow row)
{

string currentName;



currentName = ((TextBox)row.FindControl
("txtName")).Text;


if (!currentName.Equals(newRow["Nomre"].ToString()))
{ return true; }

return false;

}
protected void chkSelect_CheckedChanged
(object sender, EventArgs e)
{
CheckBox chkTest = (CheckBox)sender;
GridViewRow grdRow = (GridViewRow)chkTest.NamingContainer;
TextBox txtname = (TextBox)grdRow.FindControl
("txtName");

if (chkTest.Checked)
{
txtname.ReadOnly = false;
txtname.ForeColor = System.Drawing.Color.Black;

}
else
{
txtname.ReadOnly = true;
txtname.ForeColor = System.Drawing.Color.Blue;

}
}
لطفا راهنمایی کنید به قسمت if (!currentName.Equals(newRow["Nomre"].ToString()))
ایراد می گیرد.:متفکر:

yakooza2009
شنبه 06 آذر 1389, 11:04 صبح
داداشم

شما یک دیتاست تعریف کن
دستور SELECT که الان تعریف کردی و این گرید و پر میکنی توسط همون دستور دیتاست رو هم پر کن
بعد دیتا ست رو به گرید بایند کن
حالا کاربر نمرات دلخواهشو یکجا وارد میکنه
شما کافیه اطلاعات گرید و به دیتاست منتقل کنی
بعد با یک دستور Update دیتاست رو به بانک اطلاعاتی منتقل کنی
امیدوارم منظورم و گرفته باشی

.
.
موفق باشی