سؤال

جديد تماما ل C# أحتاج إلى إرسال قيمة لإضافة دقائق إلى تاريخ ولكن يمكن أن تكون فارغة.إليك كيف أفعل :

if(Eval("DUREE") != DBNull.Value)
{
    var duration = Convert.ToInt32(Eval("DUREE"));
    var date = Convert.ToDateTime(Eval("DATE"));
    var dateAsString = Convert.ToString(date.AddMinutes(duration));
    DataBinder.Eval(Container.DataItem, dateAsString, "{0:HH:mm}") 
}
else
{
    " - "
}

هنا الخطأ الذي أحصل عليه :

ربط البيانات :'النظام.البيانات.داتاروفيو ' لا كومبورت خصائص تسمى :'17/04/2014 13:30:00'.

وبالتالي, لا الاختيار غير صحيح?أو الخطأ في مكان آخر?

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

المحلول

حاول استخدام التعليمات البرمجية في أسبكس في المكان الذي كنت في حاجة إلى سلسلة مع التاريخ أو" -"

<%# Eval("DUREE") == DBNull.Value || Eval("DATE") == DBNull.Value
    ? " - "
    : Convert.ToString(Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToInt32(Eval("DUREE")))), "{0:HH:mm}") %>

مشكلة في التعليمات البرمجية التي كنت في DataBinder.Eval تمرير سلسلة المعلمة الثانية مع التاريخ ولكن ليس اسم الخاصية.

نصائح أخرى

بافتراض أن طريقة 'التقييم' تعيد لك قيمة تاريخ في شكل سلسلة, هل هذا ما تحاول القيام به?:Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToDateTime(Eval("DUREE")).Minute) قد يكون هذا هو الحل لمشكلتك لإضافة دقائق.

ومع ذلك ، يبدو أن الخطأ الذي تحصل عليه يشير إلى مشكلة مختلفة.التعليمات البرمجية التي قمت بنشرها ويبدو أن في التعليمات البرمجية وراء (?). DataBinder.Eval وعادة ما تستخدم الطريقة في أسبكس للتحكم على شبكة الإنترنت مثل التحكم مكرر.في هذه الحالة سيكون عليك تمرير المعلمة الثانية إلى DataBinder.Eval كاسم للممتلكات العامة.

يمكنك التحقق من ذلك من أجل الوضوح انقر هنا

يمكنك أن تفعل إضافة دقائق في حين يعود قيمة العقار

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top