How to access datasource fields in an ASP.NET Repeaters ItemDataBound event?

后端 未结 3 1187
被撕碎了的回忆
被撕碎了的回忆 2021-02-02 10:42

I have a Repeater control that is being bound to the result of a Linq query.

I want to get the value of one of the datasource\'s fields in the ItemDataBound event, but I

相关标签:
3条回答
  • 2021-02-02 11:07

    You can use: e.Item.DataItem.

    Example: Repeater.ItemDataBound Event

    // 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>";
        }
      }
    } 
    
    0 讨论(0)
  • 2021-02-02 11:17

    The data that is used for the current item can be found from the EventArgs.

    RepeaterItemEventArgs e
    
    e.Item.DataItem
    
    0 讨论(0)
  • 2021-02-02 11:26

    Depending on the DataSource... If your DataSource is a DataTable, then your DataItem contains a 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();
        }
    }
    
    0 讨论(0)
提交回复
热议问题