首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AjaxControlToolkit - ReorderList -不执行Update语句

AjaxControlToolkit - ReorderList -不执行Update语句
EN

Stack Overflow用户
提问于 2012-01-25 11:37:58
回答 1查看 810关注 0票数 0

似乎很多人在使用这个控制工具包时遇到了问题。我在网上找了几天也没找到答案。到目前为止,我看到的最好的解决方案是“编写你自己的重新排序过程”,而我不想这样做。

代码语言:javascript
复制
<asp:ScriptManager ID="smgrJobBidding" runat="server">
    </asp:ScriptManager>
<asp:UpdatePanel ID="uPanelReorderList" runat="server" 
    EnableViewState="False" ViewStateMode="Disabled">
    <ContentTemplate>
<ajaxToolkit:ReorderList ID="rlBiddingJobs" runat="server" AllowReorder="True" 
    DataKeyField="BidID" 
    DataSourceID="sqlDStblJobBids" 
    PostBackOnReorder="True" 
    SortOrderField="Preference" 
    DragHandleAlignment="Left"
    ClientIDMode="AutoID" 
    EnableViewState="False">
    <DragHandleTemplate>
       <div style="float:left;" class="DragHandleClass">
       </div>
    </DragHandleTemplate>
    <ItemTemplate>
        <asp:Button ID="btnDeleteSignup" runat="server" CommandName="Delete" 
        style="float:right;" Text="Delete" Width="75" Font-Size="Small" Height="20px" />
        <asp:Label ID="lblPostingID" runat="server" Text='<%# Eval("PostingID") %>'></asp:Label>
    </ItemTemplate>
</ajaxToolkit:ReorderList>
    </ContentTemplate>
</asp:UpdatePanel>

由于表的标准化布局,SQL数据源对象有点笨重。

代码语言:javascript
复制
<asp:SqlDataSource ID="sqlDStblJobBids" runat="server" 
    ConnectionString="<%$ ConnectionStrings:JobsDB %>" 
    SelectCommand="SELECT dbo.tblJobBids.BidID, dbo.tblJobBids.PostingID, dbo.tblJobBids.EUID, dbo.tblJobBids.Preference, dbo.tblJobPostings.Shift, dbo.tblJobPostings.Needs, 
                  dbo.tblJobPostings.PostedDate, dbo.tblJobPostings.ClosingDate, dbo.tblDepartments.Department, dbo.tblJobs.JobName
FROM dbo.tblJobBids INNER JOIN
                  dbo.tblJobPostings ON dbo.tblJobBids.PostingID = dbo.tblJobPostings.PostingID     INNER JOIN
                  dbo.tblJobs ON dbo.tblJobPostings.JobID = dbo.tblJobs.JobID INNER JOIN
                  dbo.tblDepartments ON dbo.tblJobPostings.DepartmentID = dbo.tblDepartments.DeptID
WHERE tblJobPostings.ClosingDate &gt;= (SELECT GETDATE()) AND tblJobPostings.PostingID 
IN (SELECT tblJobBids.PostingID FROM  tblJobBids WHERE tblJobBids.EUID = @EUID)
ORDER BY tblJobBids.Preference Asc;"
    DeleteCommand="DELETE FROM tblJobBids WHERE tblJobBids.BidID = @BidID;" 
    UpdateCommand="UPDATE dbo.tblJobBids SET tblJobs.Preference = @Preference WHERE tblJobs.BidID = @BidID;" >
    <DeleteParameters>
        <asp:Parameter Name="BidID" />
    </DeleteParameters>
    <SelectParameters>
        <asp:SessionParameter Name="EUID" SessionField="sEUID" />
    </SelectParameters>
    <UpdateParameters>
        <asp:Parameter Name="Preference" Type="Byte"/>
        <asp:Parameter Name="BidID" Type="Int32"/>
    </UpdateParameters>
</asp:SqlDataSource>

Select语句很好,我可以拖动所有我想要的项,但它们是“橡皮筋”,回到拖动之前的位置。这就像update语句没有在回发时触发一样。

我已经在更新面板中添加了一些故障排除代码来计算异步回发,它肯定会回发。数据库(SQL Server2008 R2 Express)中的数据似乎没有更改。它可能会改变,然后又变回来。我在看日志来看看。

看到有什么明显的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-28 02:53:59

原来我是个哑巴,我在SQL Server2008中将SortOrderField的数据类型设置为"tinyint“。我把它从原来的"int“改成了”int“,现在它起作用了。我最初将它创建为"tinyint“,因为偏好通常只会在很小的范围内,比如1-10。不管怎样,它现在起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8997529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档