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

Change Datalist Forecolor According To Condition

بدأه enjyshahin في 8 نوفمبر 2008 · 5 رد · 700 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اريد تغيير forecolor للdatalist cell بناءا على شرط معين

يا حى يا قيوم برحمتك أستغيث اصلح لى شأنى كله ولا تكلنى إلى نفسى طرفة عين

اللهم أعنا على ذكرك وشكرك وحسن عبادتك

اللهم انك عفو كريم حليم تحب العفو فاعفو عنا

اللهم إنى أسألك رضاك والجنة وأعوذ بك من سخطك والنار

اللهم إرحمنا فوق الأرض وإرحمنا تحت الأرض وإرحمنا وإعتق رقابنا يوم العرض

اللهم لا تدع لنا ذنبًا إلا غفرته ولا همًا إلا فرجته ولا مريضًا ولا دينًا إلا قضيته ولا عيبا إلا سترته ولا حاجًا هى لك رضا إلا قضيتها

اللهم انى أسألك موجبات رحمتك وعزائم مغفرتك والسلامة من كل إثم والغنيمة من كل بر والفوز بالجنة و النجاة من النار اللهم أمين يا رب العالمين

#2

بفرض تغيير ال forecolor الخاص ب Label داخل ال Datalist Item Template اعتمادا علي قيمة معينة من قاعدة البيانات مثلا

بفرض ان الكود الخاص بال dataList بالشكل التالي :

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

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

			</ItemTemplate>
		</asp:DataList>

و نفرض ان دالة GetForeColor بالشكل التالي :

	protected System.Drawing.Color GetForeColor(object dbValue)
	{
		if (dbValue.ToString() == "someValue") return System.Drawing.Color.Blue;
		return System.Drawing.Color.Red;
	}

تم تعديل هذه المشاركة بواسطة AhmedElbaz في 8 نوفمبر 2008 في 21:42

#3

أخى الفاضل

انا استخدم

<ItemTemplate>

				<asp:Label ID="Label1" runat="server" ForeColor='<%# GetForeColor(Eval("dbValue")) %>'> <%#Container.DataItem("ROOMF-KEY")%> 
				</asp:Label>

					<br />
				</ItemTemplate>

ثم

 Protected Function GetForeColor(ByVal DBValue As Object) As System.Drawing.Color
		If DBValue.ToString = "S001" Then
			Return System.Drawing.Color.Green
		ElseIf DBValue.ToString = "S002" Then
			Return System.Drawing.Color.Yellow
		ElseIf DBValue.ToString = "S003" Then
			Return System.Drawing.Color.Red
		ElseIf DBValue.ToString = "S004" Then
			Return System.Drawing.Color.Blue
		End If
	End Function

واستخدم ال function

GetForeColor(dr("ROOM-STATUS").ToString.Trim)

حيث ان dr هي قيمه ل datarow في dataset

يظهر لى error عند القيمة الbold في ال itemtemplate

اقتباس
DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'dbvalue'"

عندما اغيرها ل

ForeColor='<%# GetForeColor(Eval("ٌROOM-STATUS")) %>'

وهي القيمة التى اغير اللون بناء عليها لا يغير اللون لا اعرف السبب

هل يوجد حل

يا حى يا قيوم برحمتك أستغيث اصلح لى شأنى كله ولا تكلنى إلى نفسى طرفة عين

اللهم أعنا على ذكرك وشكرك وحسن عبادتك

اللهم انك عفو كريم حليم تحب العفو فاعفو عنا

اللهم إنى أسألك رضاك والجنة وأعوذ بك من سخطك والنار

اللهم إرحمنا فوق الأرض وإرحمنا تحت الأرض وإرحمنا وإعتق رقابنا يوم العرض

اللهم لا تدع لنا ذنبًا إلا غفرته ولا همًا إلا فرجته ولا مريضًا ولا دينًا إلا قضيته ولا عيبا إلا سترته ولا حاجًا هى لك رضا إلا قضيتها

اللهم انى أسألك موجبات رحمتك وعزائم مغفرتك والسلامة من كل إثم والغنيمة من كل بر والفوز بالجنة و النجاة من النار اللهم أمين يا رب العالمين

#4
GetForeColor(dr("ROOM-STATUS").ToString.Trim)

لما هذا الكود و اين ؟!

نفذ الخطوتين في مشاركتي السابقة بدون زيادة (جربتها تعمل بشكل جيد).

#5

اتبعت ما قلته ولكن نفس الخطأ ظهر لى

ما اريده هو عندى ارقام غرف تتغير لونها حسب حالتها

هذا هو الكود داخل الداتا ليست لاظهار ارقام الغرف

<ItemTemplate>
					<%#Container.DataItem("ROOMF-KEY")%>

					<br />
				</ItemTemplate>

اريد هذه الأرقام تتغير الوانها بناءا على حالتها فارغة ام ممتليئة

فماذا افعل؟ اسفة للإزعاج

يا حى يا قيوم برحمتك أستغيث اصلح لى شأنى كله ولا تكلنى إلى نفسى طرفة عين

اللهم أعنا على ذكرك وشكرك وحسن عبادتك

اللهم انك عفو كريم حليم تحب العفو فاعفو عنا

اللهم إنى أسألك رضاك والجنة وأعوذ بك من سخطك والنار

اللهم إرحمنا فوق الأرض وإرحمنا تحت الأرض وإرحمنا وإعتق رقابنا يوم العرض

اللهم لا تدع لنا ذنبًا إلا غفرته ولا همًا إلا فرجته ولا مريضًا ولا دينًا إلا قضيته ولا عيبا إلا سترته ولا حاجًا هى لك رضا إلا قضيتها

اللهم انى أسألك موجبات رحمتك وعزائم مغفرتك والسلامة من كل إثم والغنيمة من كل بر والفوز بالجنة و النجاة من النار اللهم أمين يا رب العالمين

#6

ركز شوية

لا ادري ما المشكلة في ذلك

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

Protected Function GetForeColor(ByVal DBValue As Object) As System.Drawing.Color
		If DBValue.ToString = "S001" Then
			Return System.Drawing.Color.Green
		ElseIf DBValue.ToString = "S002" Then
			Return System.Drawing.Color.Yellow
		ElseIf DBValue.ToString = "S003" Then
			Return System.Drawing.Color.Red
		ElseIf DBValue.ToString = "S004" Then
			Return System.Drawing.Color.Blue
		End If
	End Function

و بعد ذلك يوجد لديك مثلا Label بداخل dataList و ال dataList لها dataSource يوفر هذا المتغير مثلا ROOMF-KEY

قم بعمل التالي بالنسبة لل Label.ForeColor

				<asp:Label ID="Label1" runat="server" Text="Label" 

					ForeColor='<%# GetForeColor(Eval("ROOMF-KEY")) %>' 

				> </asp:Label>

قم بالتجربة في صفحة جديدة

بالتوفيق

تم تعديل هذه المشاركة بواسطة AhmedElbaz في 10 نوفمبر 2008 في 08:26

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