【问题标题】:Updating sort order using Jquery sortable and gridview使用 Jquery sortable 和 gridview 更新排序顺序
【发布时间】:2015-10-01 18:38:36
【问题描述】:

我有一个使用 SQL 数据填充的 gridview。我可以使用 jQuery soratble 对记录进行排序。当我单击 btnUpdadateSortOrder 按钮并运行我的脚本时,我没有收到任何错误,但是排序顺序没有更新。在我拖放以创建新订单后,我的数组似乎保留了旧订单。我应该用什么来设置我的 vid_id()????

      <asp:GridView ID="gvVideos" CssClass="gvVideosClass" runat="server" 
        AutoGenerateColumns="False" DataKeyNames="CustomerId"
        OnRowDataBound="OnRowDataBound" OnRowEditing="OnRowEditing" OnRowCancelingEdit="OnRowCancelingEdit"
        OnRowUpdating="OnRowUpdating" OnRowDeleting="OnRowDeleting" EmptyDataText="No records has been added.">
        <Columns>
             <asp:TemplateField HeaderText="Customer">
                <EditItemTemplate>
                    <asp:TextBox ID="customerId" runat="server" Text='<%# Bind("customerId")%>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblcustomerID" runat="server" Text='<%# Bind("customerId")%>'></asp:Label>
                </ItemTemplate>
                <ItemStyle Width="160px" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Fid" ItemStyle-Width="50">
                <ItemTemplate>
                    <asp:Label ID="lblvidID" runat="server" Text='<%# Bind("fID")%>' />
                    <input type="hidden" name="vidId" value='<%# Eval("fId")%>' />
                </ItemTemplate>



            </Columns>
        </asp:GridView>


        <br />
        <asp:Button ID="btnUpdateSortOrder" runat="server" Text="Update Sort Order"
            OnClick="btnUpdateSortOrder_Click" />

这是我的代码隐藏

  ' stores id_ in array
    Dim vid_id As String() = New String(gvVideos.Rows.Count - 1) {}
    For i As Integer = 0 To gvVideos.Rows.Count - 1
        vid_id(i) = CInt(DirectCast(gvVideos.Rows(i).Cells(1).FindControl("vidId"), Label).Text)
    Next

   ' This worked at one point but now doesn't.       
      'Dim id_language As String() = Request.Form.GetValues("fId")
    Dim sortNumber As Integer = 1
    Dim mySort As New vidController
    ' Loop over array, which contains id_ 
    For Each i As String In vid_id
        ' method which which fire update query order save into database
        mySort.updateVidSortOrder(i, sortNumber)
        sortNumber += 1
    Next
    Response.Redirect(Request.RawUrl)

工作代码:

  Dim vid_id As String() = Request.Form.GetValues("vidId")
    Dim sortNumber As Integer = 1
    Dim mySort As New vidController
    ' Loop over array, which contains id 
    For Each i As String In vid_id
        ' method which which fire update query order save into database
        mySort.updateVidSortOrder(i, sortNumber)
        sortNumber += 1
    Next
    Response.Redirect(Request.RawUrl)

【问题讨论】:

  • 不确定您是否建议或询问 :D,但不使用 updatepanel。
  • 更新面板也不起作用:(
  • 请出示您的javascript和btnUpdateSortOrder_Clickevent。
  • 后面是vb.net代码
  • 我更新了代码隐藏。现在确定为什么这些值不刷新......我想知道是否有更简单的方法,比如数据列表或其他东西。我在这里错过了什么。

标签: javascript jquery asp.net jquery-ui gridview


【解决方案1】:

将此属性添加到您的网格视图:AllowSorting="True"

 <asp:GridView ID="gvItems" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">

【讨论】:

  • 这似乎不起作用。在我的数组 vid_id(i) 中仍然得到相同的结果。任何其他想法,我的 DOM 显示的正确顺序......但不是背后的代码
  • codepedia.info/2015/03/…,这是我更新排序顺序的来源。 Request.Form.GetValues("vidId") 这似乎不起作用,可能是因为它必须是一个边界域?已经为此奋斗了几天:S
  • 我找到了修复 'Dim vid_id As String() = Request.Form.GetValues("vidId") 我更新了上面的代码以反映。如何将其转换为答案。
猜你喜欢
  • 2014-09-09
  • 1970-01-01
  • 2015-09-16
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
  • 2015-09-29
  • 2016-10-30
  • 1970-01-01
相关资源
最近更新 更多