2012-01-25 5 views
0

많은 사람들이이 컨트롤 툴킷에 문제가있는 것처럼 보입니다. 인터넷에서 며칠 동안 답변을 찾았으니 찾을 수 없었습니다. 지금까지 본 최고의 솔루션은 내가하고 싶지 않은 "직접 재정렬 절차 작성"입니다.AjaxControlToolkit - ReorderList - Update 문을 실행하지 않음

<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 데이터 소스 개체는 테이블의 정규화 된 레이아웃 때문에 약간 부피가 커집니다.

<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 문이 postback에서 실행되지 않는 것과 같습니다.

업데이트 패널에 비동기 포스트 백을 계산하는 문제 해결 코드가 추가되어 명확하게 게시됩니다. 데이터베이스 (SQL Server 2008 R2 Express)의 데이터가 변경되지 않는 것 같습니다. 그것은 변화하고 나서 되돌아 갈 수 있습니다 ... 나는 볼 로그를보고 있습니다.

분명히 잘못된 것이 있습니까?

+0

updatepanel에서 viewstate 옵션을 제거하면 redorderlist가 모든 포스트 백에서 다시 바인딩됩니다. –

+0

그것은 EnableViewState = "False"입니다. ViewStateMode = "Disabled", 그게 무슨 뜻입니까? 나는 실제로 그것을 두 가지 방법으로 시도했다. – Lucretius

답변

0

밝혀졌습니다. SQL Server 2008에서 SortOrderField의 데이터 형식을 "tinyint"로 설정했습니다.이 점을 SQL Server 2008에서 "int"로 변경했으며 현재 작동 중입니다. 환경 설정은 일반적으로 1-10과 같이 작은 규모 일 뿐이므로 처음에는 "작은"것으로 만들었습니다. 어쨌든, 지금 일하고 있습니다.

관련 문제