2009-04-20 3 views
0

Ich versuche, DynamicData-Funktionalität in einer zuvor vorhandenen Website zu verwenden. Grundsätzlich folge ich this tutorial. Als ich zu dem Teil über das Erstellen der Feldvorlagen kam, entschied ich, dass ich wahrscheinlich eine neue Seite mit den eingebauten dynamischen Daten erstellen könnte, und dann einfach den Ordner kopieren.Wie kann ich die DynamicData-Vorlagen von einer anderen Site kopieren?

Leider, wenn ich das tun und versuche ich die Fehlermeldung „kann nicht geladen werden Typ ...“ zu kompilieren für nahezu jede ASCX-Datei im Verzeichnis Dynamic. Ich nannte das "neue" Projekt das selbe wie die vorher existierende Seite, so dass der Namensraum derselbe wäre ... aber ich kann mir nicht vorstellen, was ich sonst noch vermissen könnte.

Alles sieht ok, außer dass die * .ascx.Designer.cs Dateien innerhalb des Solution Explorer zeigt. Ich habe versucht, einen zu löschen und dann diese Datei wieder in das Verzeichnis zu kopieren, aber es hat nicht funktioniert. Ich gehe davon aus, dass ich etwas Besonderes mit diesen machen muss, damit Visual Studio sie richtig behandelt und kompilieren kann?

ist hier einer der ASPX-Dateien:

<%@ Control Language="C#" CodeBehind="FilterUserControl.ascx.cs" Inherits="EService.FilterUserControl" %> 

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" 
    EnableViewState="true" ontextchanged="new"> 
    <asp:ListItem Text="All" Value="" /> 
</asp:DropDownList> 

Hier ist die passende CS-Datei:

using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Collections.Specialized; 
using System.Linq; 
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; 
using System.Xml.Linq; 
using System.Web.DynamicData; 

namespace EService 
{ 
    public partial class FilterUserControl : System.Web.DynamicData.FilterUserControlBase 
    { 
     public event EventHandler SelectedIndexChanged 
     { 
      add 
      { 
       DropDownList1.SelectedIndexChanged += value; 
      } 
      remove 
      { 
       DropDownList1.SelectedIndexChanged -= value; 
      } 
     } 

     public override string SelectedValue 
     { 
      get 
      { 
       return DropDownList1.SelectedValue; 
      } 
     } 

     protected void Page_Init(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       PopulateListControl(DropDownList1); 

       // Set the initial value if there is one 
       if (!String.IsNullOrEmpty(InitialValue)) 
        DropDownList1.SelectedValue = InitialValue; 
      } 
     } 
    } 
} 

Und hier ist die .ascx.designer.cs Datei:

//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:2.0.50727.1433 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

namespace EService 
{ 


    public partial class FilterUserControl 
    { 

     protected System.Web.UI.WebControls.DropDownList DropDownList1; 
    } 
} 

EDIT: Wenn ich die Datei auf der Website zu erstellen, kopieren sie dann die Inhalte aus dem temporären Website habe ich es ganz gut zu kompilieren scheint. Wirklich keine Ahnung, was das Problem hier ist ... Ich habe versucht, Dateien manuell zu ändern, um die Ergebnisse des Kopierens zu entsprechen, und sie würden immer noch nicht funktionieren, wenn ich sie tatsächlich auf der Website erstellt habe. Es ist einfach bizarr ...

Antwort

0

Das Problem lag an der temporären Site, die die <% @ Control> -Definitionen mit der CodeBehind-Eigenschaft anstelle der CodeFile-Eigenschaft erstellt. Aus irgendeinem Grund Seiten in der aktuellen Webseite nur kompilieren, wenn Codefile erklärt ...

Verwandte Themen