2014-02-13 84 views
1

我有一個ASP.NET WebForms應用程序,並且遇到了我在ASP.NET 9個月編碼中最奇怪的問題之一。Telerik Radgrid說有0條記錄,但查詢返回185條記錄?

我添加了兩個使用Telerik Radgrids的新頁面。兩個Radgrids都是相同的,所以我將關注其中的一個,希望解決其中一個問題將解決另一個問題。

的Html

<telerik:RadGrid ID="_radgrid" runat="server" Width="100%" Visible="true" 
    AutoGenerateColumns="false" OnSortCommand="_btnSearch_Click" PagerStyle-AlwaysVisible="true" 
    Skin="Office2007" AllowFilteringByColumn="true" AllowSorting="true" AllowPaging="true" 
    PageSize="50" OnNeedDataSource="_radgrid_NeedDataSource" OnItemDataBound="_radgrid_OnItemDataBound" 
    AllowMultiRowSelection="true"> 
    <MasterTableView AllowFilteringByColumn="true" CommandItemDisplay="TopAndBottom"> 
     <CommandItemTemplate> 
      <asp:Button ID="_btnResolve" runat="server" Text="Resolve" OnClick="_btnResolve_Click" 
       Visible="False" ClientIDMode="Inherit" /> 
     </CommandItemTemplate> 
     <NoRecordsTemplate> 
      No records to display.</NoRecordsTemplate> 
     <Columns> 
      <telerik:GridBoundColumn DataField="Id" Visible="false" /> 
      <telerik:GridBoundColumn DataField="Resolved" Visible="false" /> 
      <telerik:GridClientSelectColumn UniqueName="CheckboxSelectColumn" FooterText="CheckBoxSelect footer" 
       Visible="false" /> 
      <telerik:GridHyperLinkColumn DataNavigateUrlFields="Id" AllowFiltering="false" 
       DataNavigateUrlFormatString="~/UpdatePage.aspx?Id={0}" 
       Text="Update" UniqueName="UpdateHyperLink" /> 
      <telerik:GridBoundColumn DataField="TradingPartnerName" HeaderText="Trading Partner Name" /> 
      <telerik:GridBoundColumn DataField="DocumentType" HeaderText="Transaction Set" /> 
      <telerik:GridBoundColumn DataField="DocumentID" HeaderText="Document ID" /> 
      <telerik:GridBoundColumn DataField="Description" HeaderText="Description" /> 
     </Columns> 
    </MasterTableView> 
    <ClientSettings> 
     <Selecting AllowRowSelect="true" /> 
     <ClientEvents OnRowDblClick="RowDblClick" /> 
    </ClientSettings> 
</telerik:RadGrid> 

代碼隱藏

 protected void _radgrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) 
     { 
      Fill_radgrid(); 
     } 

     private void Fill_radgrid(bool dataBind = false) 
     { 
      //Data Manager is a class that I built that makes all of the Database calls. It returns a DataSet 
      _grdNegativeAck.DataSource = DataManager.GetRecords(_txtBoxId.Text, txtBoxDocumentType.Text, _chkBoxIncludeResolved.Checked, int.Parse(_ddlTradingPartner.SelectedValue)); 

      if (dataBind) 
       _grdNegativeAck.DataBind(); 
     } 

     protected void _radgrid_OnItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) 
     { 
      if (e.Item is GridCommandItem) 
      { 
       //If the current user is authorized to resolve, show the Resolve button on the grid 
       if (currentUser.IsAuthorized)) 
       { 
        GridCommandItem cmditem = (GridCommandItem)e.Item; 
        Button _btnResolve = (Button)cmditem.FindControl("_btnResolve"); 
        _btnResolve.Visible = true; 
        _grdNegativeAck.MasterTableView.GetColumn("CheckboxSelectColumn").Visible = true; 
       } 
      } 
      else if (e.Item is GridDataItem) 
      { 
       //If the record is already resolved, do not show the checkbox on the side and color the record green 
       GridDataItem GDItem = e.Item as GridDataItem; 
       if (GDItem["Resolved"].Text.ToUpper() == "TRUE") 
       { 
        ((e.Item as GridDataItem)["CheckboxSelectColumn"].Controls[0] as CheckBox).Visible = false; 
        (e.Item as GridDataItem).BackColor = System.Drawing.Color.Green; 
       } 
      } 
     } 

這就是事情變得有趣。在我的本地主機上,當使用相同的數據庫時,我得到0個記錄返回。我檢查了我綁定的DataSet,並且確實有0行。當我查詢數據庫時,我得到185條記錄沒有問題。我仔細檢查了傳遞給查詢的參數,它們是相同的。當我在測試網站上放置相同的代碼時,該頁面將獲得184條記錄......當它應該完全匹配並獲得185條記錄時。

其他頁面在我的本地主機或我的測試網站上都沒有得到任何記錄。

我真的在我的智慧結束在這裏。任何人遇到類似的情況,或有某個地方可以指出我?

+1

我們可以看看'_radgrid_NeedDataSource'的編碼 –

+0

我已經添加了代碼隱藏部分。讓我知道這是否有助於人們更好地理解我的問題。 –

回答

0
_grdNegativeAck.DataSource = DataManager.GetRecords(_txtBoxId.Text, txtBoxDocumentType.Text _chkBoxIncludeResolved.Checked, int.Parse(_ddlTradingPartner.SelectedValue)); 

在上面的行中,您在txtBoxDocumentType.Text後缺少逗號(,)。

希望這能解決您的問題。

+0

我在提交更新到我的問題之前修改了代碼,所以我不會顯示敏感信息。我一定錯過了那個逗號。我現在更新問題。該項目編譯和運行成功,但我仍然有關於Telerik Radgrid和SQL這個奇怪的問題。 –