C#ASP.NET DetailsView - 仅在页面加载时显示第一条记录

时间:2015-07-24 01:01:53

标签: c# asp.net gridview detailsview

我当前正在隐藏GridView中数据库的所有行,直到按下DetailsView中的CommandField(Select)字段。 如何在C#中显示页面加载的第一条记录?

非常感谢任何帮助:)

class Decks < ActiveRecord::Migration
  def change
    create_table :decks do |t|
      t.string :name, null: false
      t.string :card
      t.integer :user_id, null: false
    end
  end
end

1 个答案:

答案 0 :(得分:0)

我看到了几种方法。我建议您为gridview使用两个不同的SqlDataSource.SelectCommands吗?

首先,从标记中的SQLDATASOURCE中删除SELECTCOMMAND="Select * from table",然后使用两种方法在CodeBehind中创建select命令。

当回发为false时加载在Page_Load中的一个,以及单击select时加载的另一个加载,并发生回发。

protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == true)
{
sqlcommandall();
}
else
{
sqlcommandone();
}
}
protected void sqlcommandall()
{
SqlDataSource1.SelectCommand = "select * from table order by id";
}
protected void sqlcommandone()
{
SqlDataSource1.SelectCommand = "select top 1 * from table order by id";
}

其他方式是相同的,除了你可以通过在标记中向GridView12声明中添加OnLoad="GridView12_Load"来触发select命令,而不是Page_load方法,你可以使用:

protected void GridView12_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == true)
{
sqlcommandall();
}
else
{
sqlcommandone();
}
}

以下是有关更改选择命令的一些信息:Need to modify the SelectCommand parameter for SqlDataSource from C#

希望这有帮助!