السلام عليكم
لدي صفحة تحتوي على داتا غريد وتحتوي الداتا غريد على عمود من ال checkbox
يقوم المستخدم باختيار الاسطر عن طريق ال check
اريد ان انقل الاسطر المختارة الى datagride اخرى في صفحة اخرى
ارجو المساعدة ضروري
السلام عليكم
لدي صفحة تحتوي على داتا غريد وتحتوي الداتا غريد على عمود من ال checkbox
يقوم المستخدم باختيار الاسطر عن طريق ال check
اريد ان انقل الاسطر المختارة الى datagride اخرى في صفحة اخرى
ارجو المساعدة ضروري
الموضوع ليس بهذه البساطة
عليك أن ترسل إلى الصفحة الأخرى أرقام الأسطر مثلا IDs في قاعدة البيانات
ثم تقوم عند Page Load في الصفحة الجديدة بتحميل المعلومات من قاعدة البيانات وعرضها في الـ grid الموجود في الصفحة !
في حال أردت أي تفصيل الرجاء السؤال عنه بالضبط
MAAAAAAAAAAAAAAAAAAAAAAAC
شكرا لك
اريد الطريقة التي ارسل فيها الIDS الى الصفحة الأخرى
ارجو الرد
محتاج كتير للاجابة
مممم المشكلة أنني لا أعلم ما هو الكود الذي تكتبه ولكنني سأعمل جهدي وعذرا للتأخر ولكنني لم أنتبه لردك السابق
بداية هل عدد الأسطر التي ستعرض في الصفحة التالية كبير أم صغير تقريباً لأن بعض الطرق قد لا تكون عملية في حال كان العدد كبيراً
MAAAAAAAAAAAAAAAAAAAAAAAC
if (Request.QueryString["id"] != null)
{
try
{
//There is ID and We will work as edit
int ID = int.Parse(Request.QueryString["id"]);
DataTable DT = DA.GetAccount(ID);
if (DT.Rows.Count > 0)
{
txtAccount.Text = DT.Rows[0]["Account"].ToString();
txtEmail.Text = DT.Rows[0]["Email"].ToString();
txtPassword.Text = DT.Rows[0]["Password"].ToString();
txtPassword.TextMode = TextBoxMode.SingleLine;
ddlAge.SelectedValue = DT.Rows[0]["age"].ToString();
ddlCountry.SelectedValue = DT.Rows[0]["countryid"].ToString();
cbActive.Checked = Convert.ToBoolean(DT.Rows[0]["active"]);
btnAdd.Text = "Save";
}
else
Response.Redirect("ViewDeleteAccount.aspx");
}
catch
{
Response.Redirect("ViewDeleteAccount.aspx");
}
}
اقتباسعدد الأسطر التي ستعرض في الصفحة التالية كبير أم صغير تقريباً
تقريبا 3 اسطر
شكرا لك يا اخ silmiسأجرب الكود وارد لك
يجب أن تستخدم هذه الطريقة التي وضعها الأخ silmi ولكن تكررها من أجل كل id تمرره للصفحة ويكون مثلا شكل الرابط (على اعتبار العدد قليل)
http://mypage.aspx?id1=value1&id2=value2
وتقرأ القيم بالطريقة التي وضعها الأخ
MAAAAAAAAAAAAAAAAAAAAAAAC
طيب في حال كان العدد كبير وغير معلوم
السلام عليكم
في الزر الذي يقوم بتحويلك الى الصفحه الثانيه استخدم PostBackUrl
<asp:Button ID="Button1" runat="server" Text="Go" PostBackUrl="~/Default.aspx" />
الان في الصفحه الثانيه نقوم بكتابه الكود التالي
if (PreviousPage!=null)
{
GridView gv = (GridView)PreviousPage.FindControl("GridView2");
for (int i = 0; i <= gv.Items.Count - 1; i++)
{
CheckBox ch = (CheckBox)gv.Items.FindControl("CheckBox1");
if (ch.Checked)
{
ListBox1.Items.Add(gv.Items.ItemIndex.ToString());
}
}
}
حياكم الله إخوتي ... ولكني أعرف أن Cross Page posting له محاذير من ناحية Performance ... إذ أنه يقوم بعمل تحميل للصفحة السابقة بالإضافة للحالية .. وكذا طريقة PreviousPage.FindControl أبطأ (Late Binding) فالبديل الأفضل في هذه الحالة عمل Property في الصفحة يعيد الجريد بدلاً من البحث عنها ..
المهم رأيي الشخصي أنه يضيف كود في حدث الزر يكون لست كاملة من ID المحددة والمؤشرة في الجريد .. ويضيفها مثلاً إلى Session .. ثم ينتقل للصفحة الأخرى Response.Redirect ... وهناك يأخد القيم المخزنة في Session من قبل ويتعامل معها ...
ASP.NET Team Leader
moh_kin_mah@hotmail.com
--------------------------------
لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة