【问题标题】:C# ASP.NET DetailsView - display first record only on page loadC# ASP.NET DetailsView - 仅在页面加载时显示第一条记录
【发布时间】:2015-07-24 01:01:52
【问题描述】:

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

非常感谢任何帮助:)

<asp:GridView ID="GridView12" DataKeyNames="DealId" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
                        <Columns>
                            <asp:CommandField ShowSelectButton="True" ShowHeader="False" />
                            <asp:BoundField DataField="DealId" ItemStyle-CssClass="gv-class" SortExpression="DealId" Visible="true" />
                            <asp:BoundField DataField="DealName" ItemStyle-CssClass="gv-class" SortExpression="DealName" />
                            <asp:BoundField DataField="DealDescription" ItemStyle-CssClass="gv-class" SortExpression="DealDescription" />
                            <asp:BoundField DataField="DealLocation" ItemStyle-CssClass="gv-class" SortExpression="DealLocation" />
                            <asp:BoundField DataField="DealPrice" ItemStyle-CssClass="gv-class" SortExpression="DealPrice" />
                            <asp:BoundField DataField="ImagePath" ItemStyle-CssClass="gv-class" SortExpression="ImagePath" />
                        </Columns>
                    </asp:GridView>
                </div>
                <div class="col-md-8">
                    <asp:DetailsView ID="DetailsView1" CssClass="image-class" runat="server" Height="50px" AutoGenerateRows="False" DataSourceID="SqlDataSource2">
                        <Fields>
                            <asp:ImageField DataImageUrlField="ImagePath" ItemStyle-CssClass="dv-img" SortExpression="ImagePath"/>
                            <asp:BoundField DataField="DealId" ItemStyle-CssClass="dv-1 float" SortExpression="DealId" Visible="false"/>
                            <asp:BoundField DataField="DealName" ItemStyle-CssClass="dv-2 float" SortExpression="DealName" />
                            <asp:BoundField DataFie`enter code here`ld="DealDescription" ItemStyle-CssClass="dv-3 float" SortExpression="DealDescription" />
                            <asp:BoundField DataField="DealLocation" ItemStyle-CssClass="dv-4 float" SortExpression="DealLocation" />
                            <asp:BoundField DataField="DealPrice" ItemStyle-CssClass="dv-5 float" SortExpression="DealPrice" />                                
                        </Fields>
                    </asp:DetailsView>

【问题讨论】:

    标签: c# asp.net gridview detailsview


    【解决方案1】:

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

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

    一个在回发为假时加载到 Page_Load 中,另一个在单击选择时加载,然后回发发生。

    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" 来触发选择命令,而不是 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#

    希望这会有所帮助!

    【讨论】:

    • 非常感谢@BasicIsaac,我知道这是如何工作的:) 我仍然遇到一些困难。我的查询是:为我的 sqlcommandall() 从 DealId 的交易订单中选择 * 并从交易中选择前 1 个 DealId,其中 DealId='101'order by DealId 为我的 sqlcommandone()。我收到一个错误:在所选数据源上找不到名为“DealName”的字段或属性。我已经检查过了,我的 Deals 表中肯定有一个名为 DealName 的字段。
    • 看起来你的第二个 SqlCommand 只检索一个字段,它应该检索所有字段。尝试 select top 1 DealId, DealName, DealDescription, DealPrice, ImagePath from Deals WHERE DealId='101'order by DealId 在您的选择命令中包含需要在网格视图中显示的每个字段。
    猜你喜欢
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2011-03-30
    • 1970-01-01
    • 2011-11-06
    相关资源
    最近更新 更多