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

كيف تتم عملية تغيير نص في الليبل داخل Datalist

بدأه طلال العنزي في 18 سبتمبر 2011 · 3 رد · 456 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أخواني عندي datalist داخلها فيها ليبل واريد ان اغير خاصية التكست عن طريق الكود

يوجد مثال بالمرفقات

ودمتم بود

test.rar

#2

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

كود VB :

بالنسبة لعرض Label في DataList فإنه يعتبر كعمود Column في GridView و يمكن أن نتعامل معه أيضا مثلما نتعامل مع Repeter

بدون إطالة :

في البداية ننشئ DataList نضع فيها Label وفي خاصية Text نضع القيمة التي نريد أن يأخذها من كود vb حيث يقوم بنقل القيمة إلى الـ Label

إكتب هذا الكود في Source

 <asp:DataList ID="DataList1" runat="server" Height="159px">
            <ItemTemplate>

                <asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Value") %>' />

            </ItemTemplate>
    </asp:DataList>

نضع في حدث تحميل الصفحة كود ربط DataList بـ DataSource لأنه لا يستطيع أن يأخذ قيمة واحدة

وهنا سنمثل Source بمصفوفة كأنه يوجد لدينا جدول في قاعدة بيانات يحوي سجل واحد

Protected Sub Page_Load(sender As Object, e As System.EventArgs)

	DataList1.DataSource = New Object() {New With { _
		Key .Value = "d" _
	}}
	DataList1.DataBind()
End Sub

كود c# :

 <asp:DataList ID="DataList1" runat="server">
            <ItemTemplate>

                <asp:Label ID="Label1" runat="server" Text='<%# Eval("Value") %>' />

            </ItemTemplate>
        </asp:DataList>

نضع في حدث تحميل الصفحة كود ربط DataList بـ DataSource لأنه لا يستطيع أن يأخذ قيمة واحدة

وهنا سنمثل Source بمصفوفة كأنه يوجد لدينا جدول في قاعدة بيانات يحوي سجل واحد

protected void Page_Load(object sender, System.EventArgs e)
    {

          DataList1.DataSource = new object[] 
        {
		new {Value = "d"} ,
        };
        DataList1.DataBind();
    }

التعديل على الملف المرفق موجود على المرفق التالي :

test.rar

#3

أخي باسل بارك الله بك

مشكور على المثال ..

أخي باسل أريد أن اشرح لك ماذا اريد بالضبط ..

عندي datalist تقدوم بعرض مقال كتابي ، ويوجد كونترول Rating Ajax داخل الـ datalist لتقييم المقال .. كل شي سليم ويعمل 100% والحمد لله ولكن أريد أن أضع label بجانب كونترول Rating Ajax ومهمته أنه يعرض عباره "شكرا لتقييمك للمقال" بعد الضغط على كونترول Rating Ajax ..

اتمنى وصلت الفكرة ..

#4

وصلت الفكرة , لكن المشكلة فعلا أن Rating Ajax control لا يقبل حدث النقر

و يوجد حدث التغيير في الحالة كما في الكود :

 protected void ThaiRating_Changed(object sender, RatingEventArgs e)
    {
        Thread.Sleep(400);        
        e.CallbackResult = "Update done. Value = " + e.Value + " Tag = " + e.Tag;

    }

و المشكلة الأخرى أني جربت وضع كود تغيير label ضمنه لكنه لم يعمل

و أظن هنا أنه يوجد طريقة واحدة متبقية أن نضع زر و بداخل حدث النقر الخاص بالزر على اعتبار أن اسم الكونترول ThaiRating ما يلي :

 if (ThaiRating.CurrentRating != 0)
        {
            Label1.Text = "thank you for voting.";
        }

يجب أن يكون ThaiRating خارج Datalist و ليس ضمنها و إذا أردت إدارجه مع المقال عليك وضع FormView لأننا نستطيع أن نتعامل مع الاداة مباشرة داخله

جرب الكود و خبرني عن النتيجة

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