PDA

View Full Version : عدم دسترسی به DropDownList در Grid Viwe



hamid_m6070
شنبه 07 خرداد 1390, 21:01 عصر
سلام
داخل Grid Viwe من یک DropDownList گذاشتم ولی نمی تونم به اون دسترسی پیدا کنم و مقادیری که داخل اون انتخاب می شود رو استفاده کنم .
من از کد زیر هم استفاده کردم ولی نتیجه نگرفتم
البته کد زیر کد #C است برای نمایش بهتر..


DropDownList tt =(DropDownList) GridView1.Rows[2].Cells[3].FindControl("Drap");
Label3.Text= tt.SelectedItem.Text;



اگه کمک کنید ممنون می شم.

karim orooji
شنبه 07 خرداد 1390, 21:27 عصر
http://barnamenevis.org/showthread.php?287291-گرفتن-مقدار-DropDownList-و-textbox-از-GridView&p=1265631&highlight=#post1265631

hamid_m6070
شنبه 07 خرداد 1390, 21:32 عصر
ببخشید خیلی جالب همین الان دوباره امتحان کردم درست شد .

باز هم کسی روش دیگیه ای در باره این موضوع داره مطرح کنه استفاده کنیم

amirzandi
یک شنبه 08 خرداد 1390, 09:56 صبح
ctype(gridview1.rows(i).findControl("DropDownList"),DropDownList).SelectedValue

hamid_m6070
یک شنبه 08 خرداد 1390, 21:51 عصر
سلام
من در باره همین موضوع به یه مشکل دیه بر خوردم .
الان به DropDownLis دسترسی پیدا کردم ولی هر وقت پروژ اجرا می کنم مقدار این DropDownList رو عوض می کنم و روی دکمه ای که عمل Update انجام می ده کلیک می کنم همون مقدار اولیه موقعه اجرا را به من میده
و من هرچی مقدار این DropDownList را عوض می کنم همان مقدار رو به عنوان Value به من می دهد
اشکال کار من کجاست که این مقادیر را درست به من نمی دهد.

karim orooji
یک شنبه 08 خرداد 1390, 22:28 عصر
سلام برنامه رو بزار

hamid_m6070
دوشنبه 09 خرداد 1390, 23:31 عصر
سلام

ببخشید من اگه کل پروژه بزارم پروژه رو باز کنید متوجه نمی شید از کجا آمده اطلاعات وبه کجا می رود یکم منطقش چون مبتدی هستم پیچیده کردم باز هم اگه خواستید پیغام بگذارید برات لینک بزارم

ولی فقط کدی که برای این DrapDowlist گذاشتم اینه :


DropDownList tt = (DropDownList)GridView1.Rows[e.RowIndex].Cells[3].FindControl("DropType");

lable.Text = tt.SelectedItem.Value;


داخل این DrapDowlist مقادیر user , NoActive, Admin, Shobh هست که مقدار اولیه اون NOActive هست
و در موقعه اجرای برنامه مقدار رو از DrapDowlist عوض می کنم به من مقدار NOActive رو پاس می کنه .

جالبی که داره داخل این tt که من در بالا خط اول تعریف کردم هم مقدار همان اولیه رو می دهد.

باز هم از راهنمایی شما دوستان تشکر می کنم

hamid_m6070
سه شنبه 10 خرداد 1390, 19:52 عصر
سلام
من به جای DrapDowlist یک Link Botuun هم گذاشتم به مقدار Text اون دسترسی پیداد کنم باز هم پیغام خط می دهد

امد م به فعال و غیر فعال شدن آیتم او رو خاموش روشن کنم پیغام خطا می ده



LinkButton tt = (LinkButton)GridView1.FindControl("LinkButtonNo").Visible=true;


پیغام خطا :


Error 1 Cannot convert type 'bool' to 'System.Web.UI.WebControls.LinkButton'
کست هم کردم باز هم جواب نداد

کمک کمک دارم منفجر می شم

sam166
سه شنبه 10 خرداد 1390, 23:43 عصر
دوست عزیز من هم همین مشکل رو دارم
بعضی موقع ها خوب کار میکنه ولی بعضی موقع ها فقط مقدار اول رو بر میگردونه

دوستان کمک کنن

karim orooji
چهارشنبه 11 خرداد 1390, 13:07 عصر
شما برنامه رو بزار بقیه اش با من

hamid_m6070
چهارشنبه 11 خرداد 1390, 14:49 عصر
سلام
آقا شرمنده یکم مبتدیانه نوشتم
سوال چند تا دیگه هم دارم اگه زحمتی نیست چون من برای هفته اینده باید این پروژه رو تحویل بدم و جالبیش هم اینکه باید از این پروژه هم دفاع کنم

سوال اول : همان DropDownList است که چرا مقدار درست نمی ده

سوال دوم : چرا بعد از حذف یک سطر از GridViwe و Bind کردن دوباره مقادیر در جدول هنوز هست تا Refrsh نکنم عوض نمی شه

سوال سوم:چرا در یک Forech نمی تونم دو تا INsert به دو تا جدول داشته باشم (پوشه Customer , فرم FrmOrderAddCustomer.aspx ) که من به حالت Comment در اوردم


لینک پروژه : http://www.4shared.com/file/EI-zBo6D/Bank.html

باز هم تشکر می کنم از شما اگر می توانید تغییرات را انجام دهید و دوباره برنامه رو برام لینکشو بزارید و یکم توضیح هم بدهید
چون در چند جای دیگر هم دوستان دیگر همین مشکلات رو دارند استفاده کنند

با تشکر از شما

karim orooji
چهارشنبه 11 خرداد 1390, 15:19 عصر
سلام گرید توی کدوم صفحه یه

hamid_m6070
چهارشنبه 11 خرداد 1390, 15:40 عصر
توی پوشه Admin فرم FrmActiveAdmin.aspx هست

توی همین پوشه FrmActiveUser.aspx همین مشکل داشت من تغییر دادم به دو کلید که همین الان کدشم نوشتم

hamid_m6070
چهارشنبه 11 خرداد 1390, 20:20 عصر
سلام آقای اروجی ببخشید اسم شما خیلی برام آشناست

ولی با این حال دستتان درد نکنه که زحمت ما افتاده رو دوش شما .

hamid_m6070
چهارشنبه 11 خرداد 1390, 21:41 عصر
سلام
آقا یکی از مشکلات من حل شد با برنامه های شما البته VB بود تبدیل کردم به #C .

مشکل این بود که GridViwe بعد از پاک کردن همان لحظه پاک نمی شد.

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



publicvoid Bind_GridViwe()
{
Login login = newLogin();
List<Login> logins = newList<Login>();
LoginDAL logindal = newLoginDAL();
logins = logindal.GetByUser();
foreach (Login log in logins)
{
GridView1.DataSource = logins;
GridView1.DataBind();
}
}

مشکل من این بود که باید یک تابع مثل بالا می نوشتم و بعد از پاک کردن او رو صدا می کردم
که در این تابع برود کل اطلاعات من رو دوباره چک کند ورو ی GridViwe نمایش دهد

باز هم از شما دوستان تشکر می کنم

karim orooji
چهارشنبه 11 خرداد 1390, 22:58 عصر
سلام دوست عزیز
این برنامه یکم بالا پایین کردیم
حالا میشه مقدار dropdowen رو بدست میاد در قسمت edit میتونی ازش استفاده کنی و قسمت حذفش هم درست شده میتونی به راحتی کار حذف کاربر رو از لیست انجام بدی



یا علی

موفق و پیروز باشی

hamid_m6070
پنج شنبه 12 خرداد 1390, 02:02 صبح
سلام

بابا شما به خاطر ما این همه کد نوشتی دست درد نکنه من اصلا فکر شم نمی کردم شما انقدر محبت کنید

از شما صمیمانه تشکر می کنم

من کد های شما رو تبدیل کردم به #C و یکم ویرایش کردم در دوجا پیغام خط می ده
که دسترسی به مقادیر سطر در Edit نداره و e.index در اون کار نمی کنه

لینکش : http://www.4shared.com/file/Mwb22xG0/Bank_01.html

فقط همان یک صفحه از پروژه گذاشتم فقط اگه می تونیید به زبان شیرین #C بنویسید

hamid_m6070
پنج شنبه 12 خرداد 1390, 10:38 صبح
سلام

من در این دو بلاک کد خطا درارم
protectedvoid GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
DropDownList edit_list = newDropDownList();
edit_list = (DropDownList)e.Row.Cells[4].FindControl("DropType");
if (((e.Row.RowType == DataControlRowType.DataRow) & (e.Row.RowState == DataControlRowState.Edit)) | ((e.Row.RowType == DataControlRowType.DataRow) & (e.Row.RowState.ToString() == "Alternate, Edit")))
{
edit_list.SelectedValue = Session["Type"].ToString();
}
}
protectedvoid GridView2_RowEditing(object sender, GridViewEditEventArgs e)
{

string ss = string.Empty;
ss = "NoActive";// ((DataBoundLiteralControl)GridView2.Rows[e.NewEditIndex].Cells[2].Controls[0]).Text;
Session["type"] = ss;
GridView2.EditIndex = e.NewEditIndex;

Bind_GridViwe();
}


یکی اون DropType رو نمی شناسه هر کاری کردم جواب نداد
یکی اون جاسته که به حالت Comment در آوردم و جلوش NoActive نوشتم الان درست کار می کنه ولی برای صفحه های دیگه می ری گرید ویو رو نمایش نمی ده
من توتوجه این Session که به کار بردی نمی شم یکم توضیح بده به من

دست درد نکنه انشاالله یک در این دنیا صد در آخرت ......

karim orooji
شنبه 14 خرداد 1390, 10:29 صبح
سلام ببخشید این دیر جوابتون دادموالا من اصلا اشنایی به زبون شیرین c# ندارم سوال رو توی بخش C# مطرح سریعتر به جواب میرسی