【问题标题】:Add To The Top in the DataList添加到 DataList 的顶部
【发布时间】:2013-11-27 22:37:40
【问题描述】:

这个我的代码用于绑定我的数据列表,并且数据列表中的每个项目都有一个不同的按钮, 项目按日期正确排序,但每个项目的索引未按日期排序, 前任: 当在员工表中插入新数据时,数据显示正确(按日期排序),最后一个员工插入到员工表中显示在第一项中并取索引 0。 我想知道如何在我的旧数据中使他的索引 The Last Index + 1 ?

private void bind()
{
  da2 = new SqlDataAdapter("select * from employees order by insert_date desc", m_SqlConnection);
  DataSet dataSet2 = new DataSet();
  da2.Fill(dataSet2, "det");
  DataList1.DataSource = dataSet2.Tables["det"];
  DataList1.DataBind();

}

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
    Button btn =  (Button)e.Item.FindControl("button4");
    Button btn2 = (Button)e.Item.FindControl("button1");
    da2 = new SqlDataAdapter("select insert_stat from insert_detail where user_id='" + int.Parse(Session["id"].ToString()) + "'", m_SqlConnection);
    DataSet dataSet2 = new DataSet();
    da2.Fill(dataSet2, "chk");
        if (dataSet2.Tables["chk"].Rows[e.Item.ItemIndex]["insert_stat"].ToString() == "accept")
        {
            btn.Visible = true;
            btn2.Visible = true;
        }
        else
        {
            if (dataSet2.Tables["chk"].Rows[e.Item.ItemIndex]["insert_stat"].ToString() == "reject")
            {
                btn.Visible = false;
                btn2.Visible = false;
            }
        }

}

【问题讨论】:

    标签: asp.net datalist


    【解决方案1】:

    这更像是一个 SQL 问题而不是 DataList 问题。

    我建议您在 bind() 方法中重写您的 SQL 以在 insert_detail 表上执行 JOIN,以将 accept 或 reject 值从表中取出并放入数据的绑定数据集中列表。这有两个好处:

    1. 它消除了DataList1_ItemDataBound() 方法中的数据库调用,如果您有几十或几百行,那么数据库调用将减少几十或几百。
    2. 它允许您将insert_stat 值放入DataList 中的HiddenField 控件中,然后检查DataList1_ItemDataBound 事件中的值,如下所示:

      HiddenField theHiddenField =  e.Item.FindControl("HiddenField1") as HiddenField;
      
      // Make sure we found the control, because the as operator 
      // returns null for a failed cast
      if(theHiddenField != null)
      {
          if(theHiddenField.Value.ToLower() == "accept")
          {
              btn.Visible = true;
              btn2.Visible = true;
          }
          else
          {
              btn.Visible = false;
              btn2.Visible = false;
          }
      }
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2013-06-06
      相关资源
      最近更新 更多