الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف ممكن اتحكم بمحتويات ال gridview وقت التنفيذ

بدأه RAnD_CiS في 5 مارس 2010 · 22 رد · 1,903 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

في عندي بيانات بدي اجيبهم من الداتا بيس على grid view او details view طريقه ترتيب البيانات لكل سطر بتعتمد على السطر اللي بعدو يعني ما بدي كل البيانات تظهر بنفس الوقت او تكون active بنفس الوقت يعني كل مستخدم راح يكون ترتيب البيانات عندو مختلفه عن المستخدم التاني

يعني متلا بدي اجيب انا اسئله من قاعده البيانات وبدي المستخدم يجاوب عليهم اول اشي بس السؤال الاول اللي ممكن يشوفه الليهو اول سؤال موجود بقاعده البيانات وبس يجاوبه بيتفعل السؤال اللي بعدو هلأ ازا جاوب السؤال صح بيتفعل السؤال اللي رقمو 2 عادي وازا كان الجواب خاطئ بيختار سؤال من نوع تاني او موضوع تاني وبيكمل يعني على حسب الاجوبه بدي ارتب البيانات

كيف ممكن اعمل هيك ؟

#2

ارح راسك استخدم تشات

arab-code-logo.png

---------------------------

ليست المشكلة أن تخطــىء ، حتى لوكان خطئك جسيما

وليست الميزة أن تعترف بالخطـــأ وتتقبل النصح .. إنمـا

العمل الجبــار الذي ينتظرك حقا هو أن لا تعـــــــــــــود

للخطـــــــأ أبــدا ……

#3
islamicnfo_a كتب:

ارح راسك استخدم تشات

؟؟؟؟ عفوا مش فاهمه عليك

#4

أظن الأفضل لمشكلتك أختي أنك لا تعتمدي مطلقاً على GridView وتقومي من الكود بعمل Generate للجدول المطلوب عرضه ... وطبعاً هنا حسب كل مستخدم ستعملي Generate مناسب له ... وكمثال سريع عن الفكرة

Label1.Text = "<table><tr><td>Hello World!</td></tr></table>"

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#5
moh_kin كتب:

أظن الأفضل لمشكلتك أختي أنك لا تعتمدي مطلقاً على GridView وتقومي من الكود بعمل Generate للجدول المطلوب عرضه ... وطبعاً هنا حسب كل مستخدم ستعملي Generate مناسب له ... وكمثال سريع عن الفكرة

Label1.Text = "<table><tr><td>Hello World!</td></tr></table>"

راح احاول اجرب ان شاء الله

#6

طيب لو عملت grid VIEW وبعدين عملت edit template وفي الاديت حطيت grid view تاني بيرجعلي بس row واحد اللي بدي اياه انا على حسب الشرط اللي بحددو انا

هادي الفكره اللي طلعت معي بيزبط هيك ولا بيصير مشاكل ؟ ؟

#7

أظنك هكذا ستزيدي الصعوبة عليكي وعلى المستخدم ... أنا ذكرت لك موضوع Generate لأنه أكثر الطرق مرونة وسهولة ...

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#8
moh_kin كتب:

أظنك هكذا ستزيدي الصعوبة عليكي وعلى المستخدم ... أنا ذكرت لك موضوع Generate لأنه أكثر الطرق مرونة وسهولة ...

صعوبه من اي ناحيه ؟

وبالنسبه لموضوع ال Generate عفوا ما فهمت كيف بالزبط يعني هيك عملنا جدول عادي كيف بدي احط فيه البيانات من الداتا بيس وكيف بدي اخزنهم ....؟؟

#9
RAnD_CiS كتب:

صعوبه من اي ناحيه ؟

وبالنسبه لموضوع ال Generate عفوا ما فهمت كيف بالزبط يعني هيك عملنا جدول عادي كيف بدي احط فيه البيانات من الداتا بيس وكيف بدي اخزنهم ....؟؟

الصعوبة ستكون أنك في الكود ستحتاجين أن تحددي الـ Template للمستخدم ومن ثم تغييره في GridView ...

وبالنسبة للـ Generator ... فأنت تقومين بجلب البيانات المطلوبة سواء عبر Dataset أو DataTable أو عبر DataReader ... وتعملي Looping على الداتا التي تم جلبها ... ومن ثم تكوني الجدول المناسب ...

قد تظني أن هذه الطريقة غير معروفة أو صعبة .. ولكن صدقيني حين تتقنيها ستجعليها أول اختياراتك حين تقعي في نقطة مثل التي نحن بصددها ...

وممكن أن ترفقي نموذج من الكود الخاص بك وإن شاء الله أعدل عليه وأرفقه مرة أخرة شارحاً أكثر هذه الطريقة ...

خالص أمنياتي بالتوفيق

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#10
moh_kin كتب:

الصعوبة ستكون أنك في الكود ستحتاجين أن تحددي الـ Template للمستخدم ومن ثم تغييره في GridView ...

وبالنسبة للـ Generator ... فأنت تقومين بجلب البيانات المطلوبة سواء عبر Dataset أو DataTable أو عبر DataReader ... وتعملي Looping على الداتا التي تم جلبها ... ومن ثم تكوني الجدول المناسب ...

قد تظني أن هذه الطريقة غير معروفة أو صعبة .. ولكن صدقيني حين تتقنيها ستجعليها أول اختياراتك حين تقعي في نقطة مثل التي نحن بصددها ...

وممكن أن ترفقي نموذج من الكود الخاص بك وإن شاء الله أعدل عليه وأرفقه مرة أخرة شارحاً أكثر هذه الطريقة ...

خالص أمنياتي بالتوفيق

بالنسبه للكود اللي عملتو لهذه الصفحه هو بروسيجر لاحضار الاسئله من قاعده البيانات

ALTER PROCEDURE GetStdQuestion

	(
	@ExamId int

	 )

AS
SELECT * FROM QBank
 where [Exam-Id] = @ExamId

و بروسيجر لتخزين Q-ID في الجدول الذي يخص الطالب نفسه حتا نستطيع الاحتفاظ باجوبته :

ALTER PROCEDURE InsertQIntoReport

	(
	@Report int ,
	@StdId int ,
	@EId int ,
	@QId int 
	)

AS
insert into [Exam-Reporting] ([Report-Id],[Student-Id],[Exam-Id],[Q-Id])
values (@Report,@StdId,@EId,@QId)

عند فتح الصفحه سيقوم بنقل الاسئله التي تخص الامتحان الي الجدول الذي يخص الطالب Exam-Reporting

 string Name = Convert.ToString(Session["StdId"]);
            DateTime dt = new DateTime();
            dt = DateTime.Now;
            int secound = dt.Second;
            int day = dt.Day;
            int hour = dt.Hour;
            string date = secound + "" + day + "" + hour + "";


            string Exid = Request.QueryString["Eid"];
            int ReportId = (Convert.ToInt32(Name.Substring(3,4)) * Convert.ToInt32(Exid.Substring(2, 5))*secound )% Convert.ToInt32(date);
            DataTable data = DA.GetStdQuestion(Exid);
            for (int i = 0; i < data.Rows.Count; i++)

                DA.InsertQIntoReport(ReportId.ToString(), Name, Exid, data.Rows["Q-Id"].ToString());

فكره الموضوع انو الاسئله مقسمه ل 3 تصنيفات سهل وصعب ومتوسط لما الطالب ياخد الامتحان ازا جاوب على سؤالين خطأ ورا بعض لازم اختارلو سؤال سهل عشان يجاوبه مع الاخذ بعين الاعتبار انو لازم نخزن اجوبته للطالب

جدول ال Exam-Reporting بدنا نخزن فيه رقم السؤال والاجابه والعلامة

اللي انا عملتو هون انو اول ما نفتح الصفحه بنقل ارقام الاسئله اللي بتخص الامتحان بلا الاجوبه على جدول Exam-Reporting

التكمله اللي كنت بفكر فيها :

بعدين اعرض الاسئله بحيث بكل مره اعرض سؤال واحد عن طريق select top(1).....where answer =null

ازا كانت الاجابه null بعرض السؤال للطالب

واعرف متغير او عداد بيزيد واحد لما يجاوب خطأ

بعدين افحص قيمته ازا كانت 2 بعمل

select q-id .....where catogery ="easy";

وهاي العمليه لازم تضل شغاله لحتا

data.rows.count =0

بس مش عارفه كيف الطريقه اللي لازم اشتغل عليها وكيف ممكن استعمل Generator !!!!.....

واسفه جدا على الاطاله وشكرا كتير الك

#11

طالما ستعرضين للمستخدم سؤال بسؤال ... فما الحاجة من الأساس إلى GridView ؟؟؟

قد أكون مخطئ لأن شرحك للفكرة لم يكن واضحاً في كل النقاط ...

على كل حال لو كنتي تريدين أن تعرضي للمستخدم سؤال بسؤال فأظن الاأفضل عدم استخدام GridView مطلقاً واستخدام الأدوات العادية مثل Label وDropDownList وغيرها ... وتقومي بملء هذه الأدوات مع كل تحميل جديد للصفحة .. فمثلاً تضعي في Label نص السؤال وفي أدوات أخرى مثل DropDownList خيارات الإجابة أو تضعي TextBox ليكتب إجابته ... وهكذا ...

لو لم أكن قد فهمت جيداً أتمنى مزيد من الإيضاح ولو أمكن إرفاق نسخة من الكود في ملف ...

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#12

حاولت استخدام الادوات العاديه بحيث انو يكون في عندي label بحيث انو كل ما نعمل click على button ينتقل للسؤال اللي بعدو

public partial class StartExam : pageDataAccess
{
    int Qcount = 0;

protected void SveBtn_Click(object sender, EventArgs e)
    {
        SveBtn.Text = "Next";
        DataTable data = DA.GetStdQuestion(Request.QueryString["Eid"]);
        QuesLbl.Text = data.Rows[Qcount]["Q-txt"].ToString();

        Qcount++;


    }}

بس المشكله انو قيمه ال Qcount ما بتتغير معي يعني لما اعمل كليك اول مره بيظهر اول سؤال وبعدين خلص

وللاسف مش عارفه ارفق الكود لانو هادا الملف جزء من المشروع يعني الموضوع مش بس انو اعطي الامتحان

#13

آآآه ... إذن مشكلتك ليس GridView أو Generator ... وإنما مشكلتك إن قيمة متغير لديك تظل ثابتة لا تتغير ....

بالنظر لطبيعة ASP.NET الخاصة بأنه Stateless أي أنه لا يحفظ القيم بين التحميلات Postbacks ... وهذه الطبيعة المناسبة لكونه مصمم لبرمجة المواقع ... وكذا حتى يقلل التحميل على السيرفر ... وذلك عكس Windows Applications والتي تظل محتفظة بقيم المتغيرات طالما أن البرنامج يعمل ...

إذن فلكي يتمكن مبرمج ASP.NET من حفظ القيم بين التحميلات فلديه في تقنية ASP.NET أدوات قوية جيداً لحفظ هذه القيم ... وبالطبع ليست الطريقة التي استخدمتيها إحداها ... لأن الطريقة التي ذكرتيها وهي تعريف متغير وكفى ... ستؤدي أن مع كل Postback سيرجع المتغير للقيمة الافتراضية له وهي الصفر في حالة المتغيرات الرقمية ...

والتطرق لكافة طرق حفظ المتغيرات ستطلب ساعات طوال من الشرح وهي من النقاط البديهية التي يجب أن يكون كل مبرمج ASP.NET ملماً بها ... وفي اختصار وفي حالتك أمامك أربع اختيارات:

1- في ViewState .. وهذا بالطبع شرط له أن تكون كل الأسئلة يتم عرضها في ذات الصفحة.

2- في Session ... وهذه ستظل موجودة طالما ظل المستخدم يتصفح الموقع.

3- في قاعدة البيانات ... مثلاً تنشئي جدول أو تستدعي من جدول ما يحدد إلى أي سؤال وصل هذا المستخدم.

4- في URL ... مثلاً بعد كل سؤال تعيدي توجيه المستخدم إلى نفس الصفحة ولكن مع تغيير المتغير الذي يحمل رقم السؤال الحالي ... مثلاً MyPage.aspx?q=1 ... وفي التحميل تراجعي متغيرات URL لتجدي أين وصل المستخدم في الأسئلة.

خالص أمنياتي بالتوفيق

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#14

لقد حللت مشكله التغير في قيمه الcounter عن طريق تعريفه ك static

#15
RAnD_CiS كتب:

لقد حللت مشكله التغير في قيمه الcounter عن طريق تعريفه ك static

أنا لم أذكر مطلقاً أن جعل المتغير Static سيحل المشكلة في حالتك بالتحديد والسبب بسيط ... لو دخل مستخدم وأجاب سيأخذ المتغير رقم 2 مثلاً ... ثم دخل مستخدم جديد للإجابة فسيبدأ من السؤال رقم 2 لأن المتغير Static يأخد القيم على مستوى التطبيق Application ككل وليس على مستوى المستخدم ... وأظنك لا تريدين ذلك في حالتك ... ولذا ذكرت الطرق الأخرى المذكورة ...

برجاء المراجعة وإفادتي بالنتيجة

تم تعديل هذه المشاركة بواسطة moh_kin في 14 مارس 2010 في 21:22

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#16
moh_kin كتب:

آآآه ... إذن مشكلتك ليس GridView أو Generator ... وإنما مشكلتك إن قيمة متغير لديك تظل ثابتة لا تتغير ....

بالبدايه لم تكن هذه الفكره كانت المشكله بالفعل مع ال GridView لكني استبدلت الفكره ب DataTable وعندها حدثت عي مشكله المتغير

الي الان استطعت ان احصل على جميع الاسئله وتخزين الاجابات للطالب فيقاعده البيانات لا ادري ان كانت الطريقه صحيحه ام لا لكن الي الان لم تحدث بها مشكله

وهذا هو الكود

StartExam.aspx.cs :

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class StartExam : pageDataAccess
{

    static int Counter  ;
    static int format;

    protected void Page_Load(object sender, EventArgs e)
    { 
        Title = "Your Exam ";



            if (!IsPostBack)
            { string Name = Convert.ToString(Session["StdId"]);
            DateTime dt = new DateTime();
            dt = DateTime.Now;
            int secound = dt.Second;
            int day = dt.Day;
            int hour = dt.Hour;
            string date = secound + "" + day + "" + hour + ""; 
            string Exid = Request.QueryString["Eid"];
             int ReportId = (Convert.ToInt32(Name.Substring(3,4)) * Convert.ToInt32(Exid.Substring(2, 5))*secound )% Convert.ToInt32(date); 
              Counter = 0;
                DataTable data = DA.GetStdQuestion(Exid);
               for (int i = 0; i < data.Rows.Count; i++)
                    DA.InsertQIntoReport(ReportId.ToString(), Name, Exid, data.Rows["Q-Id"].ToString());
               QuesLbl.Text = data.Rows[0]["Q-txt"].ToString();
                format = Convert.ToInt32(data.Rows[0]["Format"]);
               switch (format)
               {
                   case 1:
                   case 3: AnsList.Visible = true; AnsTxt.Visible = false;
                       DataTable ans = DA.veiwAnswer(Request.QueryString["Eid"], data.Rows[Counter]["Q-Id"].ToString());
                       for (int i = 0; i < ans.Rows.Count; i++)
                           AnsList.Items.Add(ans.Rows["Tanswer"].ToString()); break;
                   case 2:case 4: AnsTxt.Visible = true; AnsList.Visible = false; break;
               }



            }


    }

    protected void SveBtn_Click(object sender, EventArgs e)
    {  DataTable data = DA.GetStdQuestion(Request.QueryString["Eid"]);
    if (Counter <= data.Rows.Count-1)
    {
        switch (format)
        {
            case 1:
            case 3:
                DA.SaveStdAnswer(Session["StdId"].ToString(), Request.QueryString["Eid"].ToString(), data.Rows[Counter]["Q-Id"].ToString(), AnsList.SelectedValue); break;
            case 2:
            case 4: DA.SaveStdAnswer(Session["StdId"].ToString(), Request.QueryString["Eid"].ToString(), data.Rows[Counter]["Q-Id"].ToString(), AnsTxt.Text); break;

        }

        Counter++;

        AnsList.Items.Clear();
        AnsTxt.Text = "";
    }
    if (Counter < data.Rows.Count - 1)
    {  SveBtn.Text = "Next";
        QuesLbl.Text = data.Rows[Counter]["Q-txt"].ToString();
         format = Convert.ToInt32(data.Rows[Counter]["Format"]);
        switch (format)
        {
            case 1:
            case 3: AnsList.Visible = true; AnsTxt.Visible = false;
               DataTable ans=DA.veiwAnswer(Request.QueryString["Eid"],data.Rows[Counter]["Q-Id"].ToString());
                   for (int i = 0; i < ans.Rows.Count; i++)
                       AnsList.Items.Add(ans.Rows["Tanswer"].ToString());break;
            case 2:case 4: AnsTxt.Visible = true; AnsList.Visible = false; break;
        }


    }
    else
    {
        if (Counter == data.Rows.Count - 1)
        {
            SveBtn.Text = "Finish";
            QuesLbl.Text = data.Rows[Counter]["Q-txt"].ToString();
            Counter++;
        }
        else
        {
            if (Counter > data.Rows.Count - 1)
            {


                switch (format)
                {
                    case 1:
                    case 3:
                        DA.SaveStdAnswer(Session["StdId"].ToString(), Request.QueryString["Eid"].ToString(), data.Rows[Counter-1]["Q-Id"].ToString(), AnsList.SelectedValue); Response.Write("<script> alert('Exam Complete click to see your Mark ') </script>");break;
                    case 2:
                    case 4: DA.SaveStdAnswer(Session["StdId"].ToString(), Request.QueryString["Eid"].ToString(), data.Rows[Counter - 1]["Q-Id"].ToString(), AnsTxt.Text); Response.Write("<script> alert('Exam Complete click to see your Mark ') </script>"); break;

                }
                Response.Redirect("FinishExam.aspx");
            }
        }
    }

    }

}
#17
moh_kin كتب:

أنا لم أذكر مطلقاً أن جعل المتغير Static سيحل المشكلة في حالتك بالتحديد والسبب بسيط ... لو دخل مستخدم وأجاب سيأخذ المتغير رقم 2 مثلاً ... ثم دخل مستخدم جديد للإجابة فسيبدأ من السؤال رقم 2 لأن المتغير Static يأخد القيم على مستوى التطبيق Application ككل وليس على مستوى المستخدم ... وأظنك لا تريدين ذلك في حالتك ... ولذا ذكرت الطرق الأخرى المذكورة ...

برجاء المراجعة وإفادتي بالنتيجة

حاولت استخدام ال session و ال view state لكن لم استطيع التغيير على العداد الا في هذه الحاله ...

لكن القيمه الاوليه للعداد وهو صفر موجوده في ال page load ممكن هادا الاشي يحل المشكله ؟؟؟

#18

RAnD_CiS كتب:

حاولت استخدام ال session و ال view state لكن لم استطيع التغيير على العداد الا في هذه الحاله ...

لكن القيمه الاوليه للعداد وهو صفر موجوده في ال page load ممكن هادا الاشي يحل المشكله ؟؟؟

القيمة الأولية ستكون مشكلة عند دخول مستخدم جديد ومستخدم آخر في مرحلة سؤال ما ... بمعنى لو وصل مستخدم للسؤال رقم 3 مثلاً ثم بدأ مستخدم آخر في الإجابة من الرقم 0 ... السؤال التالي الذي سيظهر للمستخدم الأول سيكون السؤال رقم 1 وسيعود من جديد لأسئلة سبق الإجابة عليها لأن بتحميل الصفحة من المستخدم الثاني العداد تم تصفيره .. لأن كما سبق وذكرت فإن المتغيرات static تكون قيمها على مستوى التطبيق ككل وليس لمستخدم معين.

موضوع Session بسيط للغاية ... طبعاً أولاً يجب إزالة المعرف static عن المتغير ... ثانياً بعد التغيير في قيمة العداد نقوم بحفظ القيمة الجديدة في Session وليكن اسمه myCounter هكذا

Counter++;
Session["myCounter"] = Counter;

ثالثاً وفي Page_Load وفي أول سطر داخل هذا الحدث Event ... نقوم باسترجاع قيمة المتغير إن كان سبق حفظها في Session أو جعلها بصفر ... كما يلي:

Counter = Session["myCounter"] != null ? Convert.ToInt32(Session["myCounter"]) : 0;

وهكذا نكون قد انتهينا ولا حاجة لتغيير كود آخر ... وكمختصر لما حدث حتى الآن:

1- أزلنا static عن المتغير.

2- عند كل تغيير في المتغير نحفظ القيمة الجديدة في Session.

3- عند كل تحميل للصفحة وقبل أي كود آخر ، نقوم باسترجاع القيمة التي تم حفظها في Session إلى المتغير مرة أخرى.

وهكذا وبنفس الطريقة يمكنك حفظ أي متغير تريدين بين التحميلات وبين التجول بين الصفحات ... حيث أن Session يحفظ قيمه على مستوى المستخدم الذي يتصفح الموقع وليس على مستوى التطبيق ككل ... ويظل Session فعالاً طالما أن المستخدم يتصفح الموقع وتظل هذه القيمة موجودة حتى يخرج المستخدم ...

ملاحظة أخيرة: نفس الطريقة السابقة والكود السابق تنفع مع ViewState ولكن طبعاً مع تغيير ViewState مكان Session في الكود وبقاء باقي الكود على حاله ... مع ملاحظة أن ViewState تحفظ قيمها على مستوى الصفحة فقط التي يتصفحها المستخدم ...

أمنياتي بالتوفيق وفي انتظار التجربة والرد

تم تعديل هذه المشاركة بواسطة moh_kin في 15 مارس 2010 في 10:06

1

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#19

لم انتبه لهذه المعلومة بالنسبه لل static شكرا لك

استعملت ال session ولم تحدث اخطاء .... الخطأ الذي حدث معي سابقا لاني لم استعمل Counter = Session["myCounter"] != null ? Convert.ToInt32(Session["myCounter"]) : 0

كنت اقوم باسناد القيمه 0 للمتغير في جميع االحالات counter = 0

لكن الى الان لقد بقمت بعرض البيانات بنفس الترتيب الموجود بالداتا بيس وليس كما اريد

فكرت في تخزين الاسئله في مصفوفه بحيث يأخد كل سؤال index معين واسترجع الاسئله التي اريدها من خلال هذا ال index على حسب الشرط المطلوب وعند استرجاع اي سؤال اجعل قيمته في المصفوفه تساوي null ..؟؟ هل يوجد مشكله في هذه الطريقه ؟

اعذرني على كثره الاسئله لكن هذا اول مشروع لي بال asp.net

1
#20
RAnD_CiS كتب:

لم انتبه لهذه المعلومة بالنسبه لل static شكرا لك

استعملت ال session ولم تحدث اخطاء .... الخطأ الذي حدث معي سابقا لاني لم استعمل Counter = Session["myCounter"] != null ? Convert.ToInt32(Session["myCounter"]) : 0

كنت اقوم باسناد القيمه 0 للمتغير في جميع االحالات counter = 0

لكن الى الان لقد بقمت بعرض البيانات بنفس الترتيب الموجود بالداتا بيس وليس كما اريد

فكرت في تخزين الاسئله في مصفوفه بحيث يأخد كل سؤال index معين واسترجع الاسئله التي اريدها من خلال هذا ال index على حسب الشرط المطلوب وعند استرجاع اي سؤال اجعل قيمته في المصفوفه تساوي null ..؟؟ هل يوجد مشكله في هذه الطريقه ؟

اعذرني على كثره الاسئله لكن هذا اول مشروع لي بال asp.net

إسألي أختي كيفما تشائين وإن شاء الله تجدي المساعدة دائماً ... فقط أتمنى أن تكوني استفدتي

بالنسبة لموضوع ترتيب الأسئلة فأظن الأفضل إضافة خانة في جدول الأسئلة في قاعدة البيانات وليكن اسمها QuOrder وهي تأخذ أرقام توضح ترتيب الأسئلة ...

وعندما تقومين بجلب الأسئلة عليكي استخدام أمر استعلام Query يحوي أمر الترتيب ORDER BY كما يلي:

ORDER BY [QuOrder]

وبذلك يمكنك ترتيب الأسئلة كيفما تشائين عبر التغيير في ترتيبها عبر جدول الأسئلة عبر خانة QuOrder

أمنياتي بالتوفيق

رجاء: أتمنى لو استفدتي من ردودي أن تقومي بتقييم الردود عبر الأزرار الموجودة أسفل يسار كل مشاركة ... التقييم ممكن أن يتم على كل رد على حدة

تم تعديل هذه المشاركة بواسطة moh_kin في 15 مارس 2010 في 19:18

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#21
moh_kin كتب:

إسألي أختي كيفما تشائين وإن شاء الله تجدي المساعدة دائماً ... فقط أتمنى أن تكوني استفدتي

بالنسبة لموضوع ترتيب الأسئلة فأظن الأفضل إضافة خانة في جدول الأسئلة في قاعدة البيانات وليكن اسمها QuOrder وهي تأخذ أرقام توضح ترتيب الأسئلة ...

وعندما تقومين بجلب الأسئلة عليكي استخدام أمر استعلام Query يحوي أمر الترتيب ORDER BY كما يلي:

ORDER BY [QuOrder]

وبذلك يمكنك ترتيب الأسئلة كيفما تشائين عبر التغيير في ترتيبها عبر جدول الأسئلة عبر خانة QuOrder

أمنياتي بالتوفيق

لكن بهذه الطريقه اقوم بتوحيد الترتيب لجميع المستخدمين والمطلوب ليس فقط ان يكون مستخدم ترتيب مختلف عن الاخر بل بالاضافه الى ان الترتيب سوف يتم في ال run time

ارجو ان تكون قد وصلتك فكرتي ..

اقتباس

رجاء: أتمنى لو استفدتي من ردودي أن تقومي بتقييم الردود عبر الأزرار الموجودة أسفل يسار كل مشاركة ... التقييم ممكن أن يتم على كل رد على حدة

لقد استفدت كثير شكرا لك :) وبالتاكيد تستحق التقييم شكرا مره اخرى

#22

أنا كنت أظن الترتيب واحد لكافة المستخدمين ... أي أن الإدارة هي التي تحدد ترتيب الأسئلة للجميع ... ولكن طالما أن الترتيب يسري لكل مستخدم على حدة .. فأظن أن تجربي الطريقة التي سلف واقترحتيها ... وأعمليني إن شاء الله بالنتيجة

خالص أمنياتي بالتوفيق دائماً

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#23
moh_kin كتب:

أنا كنت أظن الترتيب واحد لكافة المستخدمين ... أي أن الإدارة هي التي تحدد ترتيب الأسئلة للجميع ... ولكن طالما أن الترتيب يسري لكل مستخدم على حدة .. فأظن أن تجربي الطريقة التي سلف واقترحتيها ... وأعمليني إن شاء الله بالنتيجة

خالص أمنياتي بالتوفيق دائماً

ان شاء الله سأجربها واعلمك بالنتائج :)

مواضيع مشابهة