2013-04-12 2 views
0

Итак, у меня есть небольшая проблема, пытаясь понять, что именно я делаю неправильно здесь. Я расскажу вам о том, что я делаю.Вам не хватает указаний по использованию или ссылки на сборку. Visual Studio WebDeveloper 2010

Я создаю детали, и одна строка данных является логической. Первоначально мы использовали CheckBoxField, но теперь мы должны удалить это и использовать Boolean (True или False изменено на Yes или No). Итак, я удалил CheckBowField, установил DataField в «Discontinued», затем я использую код;

using System; 
    using System.Data; 
    using System.Configuration; 
    using System.Collections; 
    using System.Web; 
    using System.Web.Security; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.WebControls.WebParts; 
    using System.Web.UI.HtmlControls; 
    public partial class CustomFormatting_DetailsViewTemplateField : System.Web.UI.Page 
    { 
    protected string DisplayDiscontinuedAsYESorNO(bool discontinued) 
    { 
    if (discontinued) 
    return "YES"; 
    else 
    return "NO"; 
    } 
    } 

В моей странице .aspx.cs и я придумал эту ошибку

Описание: Произошла ошибка во время компиляции ресурса, необходимого для обслуживания этого запроса. Ознакомьтесь с приведенными ниже конкретными данными об ошибках и соответствующим образом измените исходный код.

Компилятор Сообщение об ошибке: CS1061: «ASP.customformatting_detailsviewtemplatefield_aspx» не содержит определения для «DetailsView1_PageIndexChanging» и без метода расширения «DetailsView1_PageIndexChanging» принимать первый аргумент типа «ASP.customformatting_detailsviewtemplatefield_aspx» может быть найден (вы ? отсутствующий с помощью директивы или ссылка на сборку)

Источник ошибки:

Line 3: 
Line 4: <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server"> 
Line 5:  <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateRows="False" 
Line 6:   DataKeyNames="ProductID" DataSourceID="ObjectDataSource1" 
Line 7:   onpageindexchanging="DetailsView1_PageIndexChanging"> 

И, наконец, вот код для моего DetailsView

<asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateRows="False" 
     DataKeyNames="ProductID" DataSourceID="ObjectDataSource1" 
     onpageindexchanging="DetailsView1_PageIndexChanging"> 
     <Fields> 
      <asp:BoundField DataField="ProductName" HeaderText="Product" SortExpression="ProductName" /> 
      <asp:BoundField DataField="CategoryName" HeaderText="Category" ReadOnly="True" SortExpression="CategoryName" /> 
      <asp:BoundField DataField="SupplierName" HeaderText="Supplier" ReadOnly="True" SortExpression="SupplierName" /> 
      <asp:BoundField DataField="QuantityPerUnit" HeaderText="Qty/Unit" SortExpression="QuantityPerUnit" /> 
      <asp:TemplateField HeaderText="Price and Inventory"> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%# Eval("UnitPrice", "{0:C}") %>'></asp:Label> 
        <br /> 
        <strong>(In Stock/On Order: </strong> 
        <asp:Label ID="Label2" runat="server" Text='<%# Eval("UnitsInStock") %>'></asp:Label> 
        <strong>/</strong> 
        <asp:Label ID="Label3" runat="server" Text='<%# Eval("UnitsOnOrder") %>'> 
        </asp:Label><strong>)</strong> 
       </ItemTemplate> 
      </asp:TemplateField> 

      <asp:BoundField DataField="UnitPrice" HeaderText="Price" SortExpression="UnitPrice" 
       DataFormatString="{0:c}" Visible="False" /> 
      <asp:BoundField DataField="UnitsIStock" HeaderText="Units In Stock" SortExpression="UnitsInStock" 
       Visible="False" /> 
      <asp:BoundField DataField="UnitsOnOrder" HeaderText="Units On Order" SortExpression="UnitsOnOrder" 
       Visible="False" /> 
      <asp:TemplateField HeaderText="Discontinued"> 
       <ItemTemplate> 
        <asp:Label ID="Label4" runat="server" Text='<%# Bind("Discontinued") %>'></asp:Label> 
       </ItemTemplate> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Discontinued") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <InsertItemTemplate> 
        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Discontinued") %>'></asp:TextBox> 
       </InsertItemTemplate> 
      </asp:TemplateField> 
     </Fields> 
    </asp:DetailsView> 

Извините, если я отправил слишком много кода, я просто не слишком уверен, что вам может понадобиться, чтобы помочь моему выяснить мою проблему. Я все еще новичок во всем этом на Visual Basic. Большое спасибо в совете!

ответ

1

У вас есть элемент управления DetailsView, размещенный на вашей странице aspx, и в вашей разметке вы заявили, что будет eventhandler для события onpageindexchanging, но вы не предоставили его реализацию в своем коде.

Пример из MSDN

protected void CustomerDetailView_PageIndexChanging(
    object sender, DetailsViewPageEventArgs e) 
{ 
    // Cancel the paging operation if the user tries to 
    // navigate to another record while in edit mode. 
    if (CustomerDetailView.CurrentMode == DetailsViewMode.Edit) 
    { 
     e.Cancel = true; 
     // Display an error message. 
     ErrorMessageLabel.Text = 
      "You cannot navigate to another record while in edit mode."; 
    } 

} 

См here.

Смежные вопросы