سؤال

لدي الأعمدة التالية في Gridview ، واحد هو تاريخ والآخر هو مبلغ الدولار. لقد قمت بتطبيق التنسيق وتعيين خاصية HTMLencode على خطأ ، ولكن لا تزال القيم لا تظهر:

<asp:BoundField DataField="Total" HeaderText="Total" ReadOnly="true" HtmlEncode="False" DataFormatString="{0:C}" />
<asp:BoundField DataField="Sale_Date" HeaderText="Sale Date" ReadOnly="true" HtmlEncode="False" DataFormatString = "{0:d}" />

هذه هي الطريقة التي تظهر بها هذه القيم في Gridview:

تأتي القيمة "الإجمالية" على النحو التالي: 190.0000تأتي قيمة تاريخ البيع على النحو التالي: 9/2/2010 8:59:00 صباحًا

أي اقتراحات؟

هل كانت مفيدة؟

المحلول

لقد وجدت ما كانت المشكلة. لم أتمكن من تنسيق الحقول من GridView لأن نوع البيانات الخاص به تم تعيينه على سلسلة. مجموعة البيانات التي أستخدمها لتوزيع GridView تأتي من خدمة ويب ، تعود جميع الحقول في مجموعة البيانات كأسلاك بحيث لا تعمل خاصية DataFormatString في GridView.

المأزق: انتهى بي الأمر إلى تغيير نوع البيانات لهذه الحقول بعد أن حصلت على مجموعة البيانات من خدمة الويب وقبل استخدامها كموارد البيانات في عرض الشبكة ، بمجرد أن أفعل ذلك ، عملت خاصية DataFormatString في Gridview كما هو متوقع:

ds = _ws.GetOrderList(brokerId, type, pageSize, pageNum, sort, searchBy, searchFor);
ds2 = ds.Clone();

ds2.Tables[0].Columns["Price"].DataType = System.Type.GetType("System.Double");
ds2.Tables[0].Columns["Total"].DataType = System.Type.GetType("System.Double");
ds2.Tables[0].Columns["Sale_Date"].DataType = System.Type.GetType("System.DateTime");

foreach (DataRow row in ds.Tables[0].Rows)
  {
     ds2.Tables[0].ImportRow(row);
  }
return ds2
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top