PDA

View Full Version : انتخاب یک آیتم از DropDown در GridView



yuttrim20
پنج شنبه 01 تیر 1391, 12:16 عصر
سلام دوستان، من یک gridview طراحی کردم به این شکل:


88551


میخوام وقتی از قسمت انتخاب سانس که خودش یک dropdown هست یک سانس رو انتخاب کردم و دکمه خرید رو زدم سالن و سانس رو بخونه و id اونا رو توی یه جدول دیگه اضافه کنه کدی که نوشتم تا حدودی این کار رو میکنه اما به جای id سانس صفر به جدول اضافه میکنه از دوستان کسی میدونه باید چه تغییری ایجاد کنم؟
در ضمن میخوام اگه مثلا سانس 16-18 برای سالن سبز انتخاب شد دفعه دیگه این سانس توی dropdown نباشه یعنی حذف بشه یا غیر قابل انتخاب باشه!
کدی که نوشتم:


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Add")
{
int index = Convert.ToInt32(e.CommandArgument);

DropDownList dd = GridView1.Rows[index].Cells[1].FindControl("sans") as DropDownList;
if (dd != null)
{

SqlConnection conn = new SqlConnection(Connection.GetConnection());
SqlCommand com = new SqlCommand();

string query = "SELECT id FROM [salon] WHERE (name=@name)";

com.CommandText = query;
com.Connection = conn;

com.Parameters.AddWithValue("@name", GridView1.Rows[index].Cells[0].Text);
conn.Open();
int salon = Convert.ToInt32(com.ExecuteScalar());

query = "SELECT id FROM [sans] WHERE (sans=@sans)";

com.CommandText = query;
com.Connection = conn;

com.Parameters.AddWithValue("@sans", GridView1.Rows[index].Cells[1].FindControl("sans").ToString());

int sans1 = Convert.ToInt32(com.ExecuteScalar());
conn.Close();
query = "insert into ss values(@srl_sans,@srl_salon)";

com.CommandText = query;
com.Connection = conn;

com.Parameters.AddWithValue("@srl_salon", salon);
com.Parameters.AddWithValue("@srl_sans", sans1);
conn.Open();
com.ExecuteNonQuery();
conn.Close();
}


}

}

yuttrim20
پنج شنبه 01 تیر 1391, 12:56 عصر
دوستان خوشبختانه ایراد کد رو فهمیدم باید به جای

com.Parameters.AddWithValue("@sans", GridView1.Rows[index].Cells[1].FindControl("sans").ToString());

این کد رو می نوشتم:

com.Parameters.AddWithValue("@sans", dd.Text);
امیدوارم به درد بقیه که مثل من مشکل داشتن بخوره!
ولی حالا چه طور باید این گزینه ای که از dropdown انتخاب شده توی خرید بعدی غیرقابل انتخاب باشه؟

yuttrim20
پنج شنبه 01 تیر 1391, 23:12 عصر
و یه سوال دیگه این که توی این gridview:

88582

با زدن دکمه accept این سطر به جدول در بانک اضافه میشه حالا میخوام همزمان این سطر پاک هم بشه یعنی وقتی accept رو زد به جدول اضافه بشه و از gridview حذف بشه!
البته میشه از delete خود gridview استفاده کرد اما نمیخوام اونجوری باشه.
خیلی به پاسخ این سوال و پاسخ تاپیک قبلی احتیاج دارم لطفا اگه کسی از دوستان میدونه راهنمایی کنه:افسرده:

veniz2008
جمعه 02 تیر 1391, 10:16 صبح
با سلام، برای حذف رکورد از گرید( بعد از ثبت رکورد در جدول)،شما درون اون دکمه ثبت، بایستی کلید رو از گرید بیرون بکشی(کلید جدولت)،حالا بعد از کدهای ثبت یه عمل delete انجام میدی(هم ثبت و هم حذف رکورد درون یک دکمه انجام میشه،کلید رو هم که قبلا بیرون کشیدی و بدون هیچ مشکلی عمل حذف انجام میشه)،تا اینجا رکورد از جدولت حذف شده و باید گرید رو بروز کنی تا تغییرات رو نشون بدی،موفق باشی.

yuttrim20
جمعه 02 تیر 1391, 10:39 صبح
ممنون مشکلم حل شد ولی سوال اولم چی؟اونو باید چیکا کنم؟
در ضمن میخوام اگه مثلا سانس 16-18 برای سالن سبز انتخاب شد دفعه دیگه این سانس توی dropdown نباشه یعنی حذف بشه یا غیر قابل انتخاب باشه!

veniz2008
جمعه 02 تیر 1391, 10:55 صبح
ممنون مشکلم حل شد ولی سوال اولم چی؟اونو باید چیکا کنم؟
میتونید یه فیلد وضعیت از نوع bit به جدول اضافه کنی که مقدار پیش فرض رو True قرار میدی،حالا داخل همون دکمه ثبت وقتی یک سانس انتخاب شد،با یه دستور آپدیت مقدار فیلد وضعیت رو false میکنی،همچنین تو formLoad که گرید رو پر میکنی باید دستور select رو بصورتی تغییر بدی که فقط سانس هایی رونشون بده که فیلد وضعیت اون ها True هست.