كيفية الوصول إلى حقول مصدر بيانات في حدث ASP.NET الراسبين ItemDataBound؟

StackOverflow https://stackoverflow.com/questions/829002

  •  06-07-2019
  •  | 
  •  

سؤال

ولدي السيطرة مكرر التي يتم منضمة إلى نتيجة استعلام ينق.

وأريد الحصول على قيمة واحدة من الحقول مصدر البيانات في الحدث ItemDataBound، ولكن لست متأكدا من كيفية القيام بذلك.

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

المحلول

ويمكنك استخدام: e.Item.DataItem

وعلى سبيل المثال: Repeater.ItemDataBound الحدث

// This event is raised for the header, the footer, separators, and items.
void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
  // Execute the following logic for Items and Alternating Items.
  if (e.Item.ItemType == ListItemType.Item ||
      e.Item.ItemType == ListItemType.AlternatingItem)
  {
    if (((Evaluation)e.Item.DataItem).Rating == "Good")
    {
      ((Label)e.Item.FindControl("RatingLabel")).Text= "<b>***Good***</b>";
    }
  }
} 

نصائح أخرى

واعتمادا على مصدر البيانات ... إذا مصدر البيانات الخاص بك هو DataTable و، ثم DataItem الخاص بك يحتوي على DataRowView:

protected void rptMyReteater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Button b = e.Item.FindControl("myButton") as Button; 
        DataRowView drv = e.Item.DataItem as DataRowView;
        b.CommandArgument = drv.Row["ID_COLUMN_NAME"].ToString();
    }
}

ويمكن الاطلاع على البيانات التي يتم استخدامها لهذا البند الحالي من EventArgs.

RepeaterItemEventArgs e

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