如何对数据绑定项进行排序

时间:2012-03-01 20:23:12

标签: c# asp.net database sorting

我有一个问题,在我身边已经有一个星期了。我有一个网站,用户可以创建一个帐户,并从数据库中选择加载视频。我希望视频在看到他们选择的视频时以某个顺序显示在该页面上。我的问题是视频以随机顺序显示。我知道这可能是基本的,但我现在只是入门级别(我毕业后只有两周)。所有的功能都有效,所以没有必要帮助,只是这个令人难以置信的事情。

规格: 用C#ASP.NET编写 他们通过复选框列表添加和删除选择。 我有项目数据绑定,所以我可以在后端添加和删除视频。

我知道这可能会给我一些减票,虽然我不喜欢它,但我只需要帮助解决整个项目的问题。在你因为没有代码而对我大喊大叫之前,请告诉我你想看到的内容,所以我不会添加大量无用的代码。

我并不是想让我做空,相反,我很沮丧,我尝试的一切都行不通。

提前谢谢。

编辑: 这是它的SqlDataSource:

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:fivideoConnectionString %>" 
    ProviderName="<%$ ConnectionStrings:fivideoConnectionString.ProviderName %>" 

    InsertCommand="INSERT INTO dealervideo(DealerRecID,VideoRecID) VALUES (?,?)" 
    DeleteCommand="DELETE FROM dealervideo where RecID = ?" >
         <DeleteParameters>
             <asp:SessionParameter Name="recid" SessionField="videorecid" />
         </DeleteParameters>
         <InsertParameters>
             <asp:ControlParameter ControlID="hidRecID" Name="recid" PropertyName="Value" />
             <asp:SessionParameter Name="videorecid" SessionField="videorecid" />
         </InsertParameters>

</asp:SqlDataSource>

这是Gridview:

<asp:GridView ID="GridView2" runat="server" 
        DataSourceID="SqlDataSource2" AutoGenerateColumns="False" 
        DataKeyNames="RecID" CellSpacing="5" BorderStyle="None" BorderWidth="0px">
    <Columns>
         <asp:TemplateField HeaderText="Delete">
            <ItemTemplate>
                <asp:CheckBox ID="cbDelete" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />          
     </Columns>
    </asp:GridView>

这是他们点击将视频添加到列表中的事件:

protected void btnAddVideo_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvr in GridView3.Rows)
    {
        CheckBox chkItem = (CheckBox)gvr.FindControl("cbAdd");
        if (chkItem.Checked)

        {
            String sRecID = GridView3.DataKeys[gvr.RowIndex].Value.ToString();
            Session["videorecid"] = sRecID;
            SqlDataSource2.Insert();
            SqlDataSource2.SelectCommand = "SELECT * FROM dealervideo inner join videos on videos.RecID = dealervideo.VideoRecID inner join dealers on dealers.RecID = dealervideo.DealerRecID where dealers.RecID = " + hidRecID.Value;

        }
    }
    GridView2.DataBind();

2 个答案:

答案 0 :(得分:1)

在您的选择命令和您想要订购的字段上添加“ORDER BY”。

示例:

SqlDataSource2.SelectCommand = "SELECT * FROM dealervideo inner join videos on videos.RecID = dealervideo.VideoRecID inner join dealers on dealers.RecID = dealervideo.DealerRecID where dealers.RecID = " + hidRecID.Value + " ORDER BY videos.RecID";

答案 1 :(得分:0)

我假设您绑定了存储过程或sql命令的结果?在这种情况下,为什么不在SQL语句中使用“Order By”子句?这些项目将按照从数据库中提取的顺序显示。