Как я могу скопировать шаблоны DynamicData с другого сайта? - PullRequest
0 голосов
/ 21 апреля 2009

Я пытаюсь начать использовать функциональность DynamicData на ранее существующем веб-сайте. По сути, я следую этому уроку . Когда я добрался до части о создании шаблонов полей, я решил, что, возможно, смогу создать новый сайт со встроенными динамическими данными, а затем просто скопировать папку.

К сожалению, когда я делаю это и пытаюсь скомпилировать, я получаю сообщение об ошибке «Не удалось загрузить тип ...» почти для каждого файла .ascx в каталоге DynamicData. Я назвал «новый» проект таким же, как ранее существовавший сайт, чтобы пространство имен было таким же ... но я не могу думать о том, что еще я мог бы упустить.

Все выглядит нормально, за исключением того, что файлы * .ascx.Designer.cs отображаются внутри Solution Explorer. Я попытался удалить один и затем скопировать этот файл обратно только в каталог, но это не сработало. Я предполагаю, что мне нужно сделать что-то особенное с ними, чтобы Visual Studio правильно их обрабатывал и мог компилировать?

Вот один из файлов .aspx:

<%@ 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>

Вот соответствующий файл .cs:

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;
            }
        }
    }
}

А вот и файл .ascx.designer.cs:

//------------------------------------------------------------------------------
// <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;
    }
}

РЕДАКТИРОВАТЬ: если я создаю файл на веб-сайте, а затем скопировать содержимое с временного сайта, который я создал, кажется, что он прекрасно компилируется. На самом деле понятия не имею, в чем проблема ... Я попытался вручную изменить файлы, чтобы они соответствовали результатам копирования, и они все равно не будут работать, если я не создам их на сайте. Это просто странно ...

Ответы [ 2 ]

0 голосов
/ 22 апреля 2009

DD будет работать с веб-приложением или . однако при копировании из другого проекта типы должны быть одинаковыми, в противном случае требуется большая часть редактирования, чтобы конвертировать мою статью здесь Получение фильтров Dynamic Data Futures, работающих на веб-сайте на основе файлов.

0 голосов
/ 22 апреля 2009

Проблема была связана с тем, что временный сайт создавал определения <% @ Control> со свойством CodeBehind вместо свойства CodeFile. По какой-то причине страницы на реальном веб-сайте будут компилироваться только тогда, когда объявлен CodeFile ...

...