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

مشكلة مع الdatagrid

مغلق
بدأه محمد الهباش في 3 يناير 2006 · 12 رد · 976 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي data grid عرضت فيها حقل لقاعدة بيانات من جدول معين واضفت الى هذها الdata grid عمود اضافي لإضافة البيانات اضافية مثل اللنك واشياء اخرى وهذا هو الكود المستعمل في السي شارب

HyperLinkColumn c=new HyperLinkColumn();
 	 c.HeaderText="التفاصيل";
 	 DataGrid1.Columns.Add(c);
              c.DataNavigateUrlField=("add");

طبعا عملية الإضافة تمت على كلى الطرفين واصبحت جميع خانات العمود المضاف عباررة عن liks جديدة لكني لا استطيع ان اجعلها مثلا بإختصار .aspx لكي اجعلها لنك لصفحة اخرى على الإطلاق الرجاء ممن مرة عليه هذه المشكلة ان يساعدني .

نموت وتحيا ...................فلسطين .

#2

add طبعا هو اسم الحقل في قاعدة البيانات

نموت وتحيا ...................فلسطين .

#3

لنفرض ان الحقل يعيد لك من قاعدة البيانات ارقام ال pk كل ما تحتاجه هو

<Columns>
    <asp:HyperLinkColumn 
    DataTextField="userName"
       DataNavigateUrlField="id"	
       DataNavigateUrlFormatString="displayInfo.aspx?id={0}"
     />
    
    
    </Columns>

طبعا {0} ستأخد قيمة المتغير داخل ال DataNavigateUrlField و سيظهر النص على شكل اسم الطالب لو فرضنا انه حقل باسم userName

يمكنك استخدام انواع الاعمدة الاخرى ولكن ستحتاج للحدث ItemDataBound من أجل إضافة اللينك للصفوف

الكود السابق لو أردت استخدامه في واجهة الأكواد اكتب التالي

 HyperLinkColumn c=new HyperLinkColumn();
    c.DataTextField = "userName";
    c.DataNavigateUrlField = "id";
    c.DataNavigateUrlFormatString = "displayInfo.aspx?id={0}";

بالتوفيق :)

You can fly while you can touch the sky

#4

جرب هذه الطريقة

<asp:datagrid >
<Columns>
<asp:TemplateColumn HeaderStyle-Width="47%" HeaderText="اسم القسم">
<ItemTemplate>

<asp:HyperLink EnableViewState="False" ID="hlSectionName" NavigateUrl='<%# "url.aspx?id=" + (DataBinder.Eval(Container, "DataItem.S_ID") %>' Text="انقر هنا" Runat="server" />

</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
#5

الطريقة نجحت والحمد لله لكن لم افهم ItemDataBound?

نموت وتحيا ...................فلسطين .

#6

هل من مجيب ؟

نموت وتحيا ...................فلسطين .

#7

شو ما حدا يرد يا أخوة؟

نموت وتحيا ...................فلسطين .

#8

هذا مثال عن كيفية إضافة حدث جافا سكريبت إلى ImageButton ضمن الحدث ItemDataBound

Private Sub dgCities_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgCities.ItemDataBound

        Dim ibDelete As ImageButton = CType(e.Item.FindControl("ibDelete"), ImageButton)
        If Not ibDelete Is Nothing Then
            ibDelete.Attributes("onclick") = "javascript: return confirm('هل تريد حذف المدينة؟');"
        End If

End Sub
#9

الأخ اسماعيل عنجريني نسيت أن تضع الشرط الخاص بال ItemType لكن FindControl سوف تسبب خطأ في حالة أن الصف كان Header او Footer مثلا

  if(e.Item.ListItemType==ListItemType.Item || e.Item.ListItemType==ListItemType.AlternateItem)
   {

   // code here;
  }

حتى تتفادى رسالة الخطأ Object Reference is null

بالتوفيق

You can fly while you can touch the sky

#10

كلامك صحيح أخي محمد لذلك أقوم بعملية الفحص التالية:

If Not ibDelete Is Nothing Then
           ibDelete.Attributes("onclick") = "javascript: return confirm('هل تريد حذف المدينة؟');"
       End If

ومع ذلك الملاحظة أخذتها بعين الاعتبار في برامجي

#11

شكرا جزيلا لكل من محمد ابو صلاح واسماعيل عنجريني

نموت وتحيا ...................فلسطين .

#12

بعد هذا السطر اين اخذ قيمة الرساله من المستخدم في الكود ممكن مثال

يمكن ان يكون في الحدث الواحد اكثر من سوال للمستخدم

  ibDelete.Attributes("onclick") = "javascript: return confirm('هل تريد حذف المدينة؟');"

هذا الموضوع مغلق.

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