custom control help

Discussion in 'ASP .Net Mobile' started by Ferruccio Barletta, Oct 21, 2007.

  1. Hi,

    I've been building a mobile custom web control using MSDN and various
    articles as a guide. The purpose of the control is to retrieve a
    document at a url and display its contents. Right now, I would be happy
    if I could get it to simply display a fixed string!

    So, I created a control:
    ------------------------
    using System;
    using System.Web.UI;
    using System.Web.UI.MobileControls;

    using System.Diagnostics;

    namespace MicroSearch.MobileControls
    {
    public class DocViewer : MobileControl
    {
    private string url_ = "";

    public String Url
    {
    get
    {
    Debug.WriteLine("get url: " + url_);
    return url_;
    }
    set
    {
    url_ = value;
    Debug.WriteLine("set url: " + url_);
    }
    }
    }
    }

    and a control adapter for html devices:
    ---------------------------------------
    using System;
    using System.Web.UI.MobileControls;
    using System.Web.UI.MobileControls.Adapters;
    using System.Diagnostics;

    namespace MicroSearch.MobileControls.Adapters
    {
    class HtmlDocViewerAdapter : HtmlControlAdapter
    {
    protected new DocViewer Control
    {
    get
    {
    Debug.WriteLine("new DocViewer");
    return (DocViewer)base.Control;
    }
    }

    public override void Render(HtmlMobileTextWriter writer)
    {
    Debug.WriteLine("Render");
    writer.Write("I am here!");
    }
    }
    }

    the control and the adapter are built into an assembly: msmobile.dll
    which is then referenced by the application:
    -------------------------------------

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Search.aspx.cs"
    Inherits="Search" %>

    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls"
    Assembly="System.Web.Mobile" %>
    <%@ Register TagPrefix="msmobile" Namespace="MicroSearch.MobileControls"
    Assembly="msmobile" %>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <body>
    <mobile:Form ID="SearchForm" Runat="server">
    <mobile:Label ID="Label" Runat="server"
    Alignment="Center">Search</mobile:Label>
    <mobile:TextBox ID="SearchText" Runat="server" Alignment="Center"
    OnTextChanged="SearchText_TextChanged"></mobile:TextBox>
    <mobile:Command ID="SearchCmd" Runat="server" Alignment="Center"
    OnClick="SearchCmd_Click">Search</mobile:Command>
    <mobile:Label ID="ErrorMsg" Runat="server" ForeColor="Red"
    Alignment="Center" BackColor="White"></mobile:Label>
    </mobile:Form>
    <mobile:Form ID="ResultsForm" Runat="server">
    <mobile:List ID="ResultList" Runat="server" DataTextField="Text"
    DataValueField="Value"></mobile:List>
    </mobile:Form>
    <mobile:Form ID="ViewForm" Runat="server">
    <mobile:Label ID="Title" Runat="server" BackColor="LightCyan"
    ForeColor="Blue"></mobile:Label>
    <msmobile:DocViewer ID="DocumentViewer" Runat="server"
    Visible="True" />
    </mobile:Form>
    </body>
    </html>

    and finally I added a device adapter entry in the app's web.config file:
    -------------------------------

    <mobileControls sessionStateHistorySize="6"
    cookielessDataDictionaryType="System.Web.Mobile.CookielessData">
    <device name="MicroSearchHtmlDeviceAdapters"
    inheritsFrom="HtmlDeviceAdapters"

    predicateClass="System.Web.UI.MobileControls.Adapters.HtmlPageAdapter"
    predicateMethod="DeviceQualifies"

    pageAdapter="System.Web.UI.MobileControls.Adapters.HtmlPageAdapter">

    <control name="MicroSearch.MobileControls.DocViewer,msmobile"

    adapter="MicroSearch.MobileControls.Adapters.HtmlDocViewerAdapter,msmobile"/>
    </device>
    </mobileControls>


    Everything builds just fine, then I run it and get:
    -----------------------------

    Server Error in '/MobileWS' Application.
    --------------------------------------------------------------------------------

    MicroSearch.MobileControls.Adapters.HtmlDocViewerAdapter..ctor()
    Description: An unhandled exception occurred during the execution of the
    current web request. Please review the stack trace for more information
    about the error and where it originated in the code.

    Exception Details: System.MethodAccessException:
    MicroSearch.MobileControls.Adapters.HtmlDocViewerAdapter..ctor()

    Source Error:


    [No relevant source lines]


    Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary
    ASP.NET Files\mobilews\baf280a3\14ea269b\App_Web_gn20izer.0.cs Line: 0

    Stack Trace:


    [MethodAccessException:
    MicroSearch.MobileControls.Adapters.HtmlDocViewerAdapter..ctor()]
    T_6e0ac78c_f36d_4b8f_86bc_f9657d47809a.CreateInstance() +0

    System.Web.UI.MobileControls.IndividualDeviceConfig.NewControlAdapter(Type
    originalControlType) +12

    System.Web.UI.MobileControls.MobilePage.GetControlAdapter(MobileControl
    control) +38
    System.Web.UI.MobileControls.MobileControl.get_Adapter() +38
    System.Web.UI.MobileControls.MobileControl.OnUnload(EventArgs e) +22
    System.Web.UI.Control.UnloadRecursive(Boolean dispose) +267
    System.Web.UI.Control.UnloadRecursive(Boolean dispose) +204
    System.Web.UI.Control.UnloadRecursive(Boolean dispose) +204
    System.Web.UI.Page.UnloadRecursive(Boolean dispose) +20
    System.Web.UI.Page.ProcessRequestCleanup() +40
    System.Web.UI.Page.ProcessRequest(Boolean
    includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +213
    System.Web.UI.Page.ProcessRequest() +86
    System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +18
    System.Web.UI.Page.ProcessRequest(HttpContext context) +49
    ASP.search_aspx.ProcessRequest(HttpContext context) in
    c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
    Files\mobilews\baf280a3\14ea269b\App_Web_gn20izer.0.cs:0

    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
    +303
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
    completedSynchronously) +64




    --------------------------------------------------------------------------------
    Version Information: Microsoft .NET Framework Version:2.0.50727.832;
    ASP.NET Version:2.0.50727.832



    Any ideas as to what's going on?

    Thanks,
    FGB
     
    Ferruccio Barletta, Oct 21, 2007
    #1
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.