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

مشكلة في GridView

بدأه abdalhady في 31 أغسطس 2010 · 3 رد · 652 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

اقوم حاليا بمشروع لادارة الاجازات

لكن هناك مشكلة في GridView

1110.png

السؤال الاول : كيف يمكنني عند الضغط على زر select ان يتم اعادة النتيجة قيمة خلية ID قمت باستعمال هذا الكود لهذه المشكلة

TextBox1.Text = GridView1.SelectedValue.ToString();

لكن ظهر لي هذا الخطأ التالي : Object reference not set to an instance of an object

السؤال الثاني : في الصورة المرفقة نلاحظ ان في حقل التاريخ البداية و تاريخ النهاية يعيد التاريخ مع الوقت مع العلم ان الحلق في قاعدة البيانات هو تاريخ فقط و حتى لم يقم بتخذين الوقت

فكيف يمكنني الغاء ظهور الوقت اريد فقط التاريخ ؟

السؤال الثالث : كيف يمكنني تغير حجم Calendar لان الادة الاساسية حجمها كبير اريد اداة مختصرة ؟

و شكرا

#2

السلام عليكم

بالنسبة للمشكلة الاولى قد لا يكون معرف اساسي للجدول بكل الاحوال جرب ما يلي

TextBox1.Text = GridView1.SelectedRow.Cells[1].Text;

اما الؤال الثاني عليك تحديد خاصية

DataFormatString="{0:mm/dd/yyyy}"

اي

<asp:BoundField DataField="datett" DataFormatString="{0:mm/dd/yyyy}"  
HeaderText="date" SortExpression="operation" />

بالنسبة للحل الاخير عليك بالتعامل مع العرض والطول ولكن ستصادف مشكلة هنا وهي حجم الخط

ما الفائدة من تصغير الرزنامة اذا كان الخط كبير لن تجد هنالك اي تجاوب

حاول ان تصغير حجم الخط من ستايل الرزنامة

<asp:Calendar ID="Calendar1" runat="server" Height="123px" Width="151px">
    	<SelectorStyle Font-Size="XX-Small" />
    	<DayStyle Font-Size="XX-Small" />
    	<DayHeaderStyle Font-Size="XX-Small" />
    	<TitleStyle Font-Size="XX-Small" />
</asp:Calendar>

In bad state

#3

اخي الكريم السلام عليكم

جزاك الله كل خير

لكن في السؤال الاول مع العلم اني استعملت

TextBox1.Text = GridView1.SelectedRow.Cells[1].Text;

لكن يتم اعادة نفس الجملة و هي : Object reference not set to an instance of an object

مع العلم انني استخرج البيانات عن طريق View

SELECT     TOP (100) PERCENT dbo.Request1.ID AS Expr2, dbo.Department.Name, dbo.Employe.ID, dbo.Employe.Name AS Expr1, dbo.Request1.NumberOfDay, 
                      dbo.Request1.DateStart, dbo.Request1.DateEnd, dbo.Request1.Date1, dbo.Request1.State
FROM         dbo.Department INNER JOIN
                      dbo.Employe ON dbo.Department.ID = dbo.Employe.ID_Dept INNER JOIN
                      dbo.Request1 ON dbo.Department.ID = dbo.Request1.IDDept AND dbo.Employe.ID = dbo.Request1.IDEmploye

بالنسبة لل كلاندر هل يوجد اداة جاهزة تكون مختصرة جدا و عند الضغط عليها يمكن ان تصبح كبيرة قم نختار التاريخ

و اين اجت هذه الادوات بحثت عن ادوات للفرجول استديو و لم اجد

و شكرا

#4

السلام عليكم ورحمة الله وبركاتة

اخي الكريم بالنسبة للسؤال الاول اذا اردت اخذ قيمة الـ ID تستطيع بطريقتين

اول طريقة في الحدث [ GridView1_SelectedIndexChanged ] التابع للـ Gridview تكتب الكود التالي :

        int SelectRowIndex;
        SelectRowIndex = GridView1.SelectedIndex;
        GridViewRow row = GridView1.Rows[SelectRowIndex];
        string ID = row.Cells[1].Text;
        Label1.Text = "The selected ID is: " + ID.ToString();

الطريقة الثانيه اذا انت عملت ButtonField للـ Gridview تضيف الكود التالي في حدث GridView1_RowCommand

على سبيل المثال انا اضفت ButtonField كالتالي

<asp:ButtonField CommandName="ShowID" Text="Show ID" />

وفي الحدث [GridView1_RowCommand] اضفت الكود التالي

        if (e.CommandName == "ShowID")
        {
            int index = Convert.ToInt32(e.CommandArgument);
            GridViewRow row = GridView1.Rows[index];
            string ID = row.Cells[1].Text;
            Label1.Text = "The selected ID is: " + ID.ToString();
        }

وان شاء الله هذا يكون المطلوب الي تحتاجة

My Latest

Hello Entity Framework Code First

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

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