Hi,

I'm trying to create a custom grid panel that encapsulate inside an ext. net editable grid panel. Basically, in my grid panel control ascx file I've something like


<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyDinamicGridPanel.ascx.cs" Inherits="testExtNet.AppControls.MyDinamicGridPanel" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script type="text/javascript">
    //debugger;
    var template = '<span style="color:{0};">{1}</span>';

    var startEditing = function (e) {
        debugger; 
        if (e.getKey() === e.ENTER) {
            var grid = extGridPanel,
                    record = grid.getSelectionModel().getSelected(),
                    index = grid.store.indexOf(record);

            grid.startEditing(index, 1);
        }
    };
 
    var validateEdit = function (e) {
        //debugger;
    };    
</script> 

<ext:ResourceManager runat="server" /><%-- RemoveViewState="true" IDMode="Explicit" ShowWarningOnAjaxFailure="false" --%>

<asp:ObjectDataSource 
            ID="objectDataSource" 
            runat="server"
            />

<ext:GridPanel
    runat="server"
    ID="extGridPanel"      
    StripeRows="true"
    TrackMouseOver="true"
    onprerender="extGridPanel_PreRender">  
    <Store>
        <ext:Store 
            ID="extStore" 
            runat="server" 
            IgnoreExtraFields="false"
            DataSourceID="objectDataSource">
            <Reader>
                <ext:JsonReader />
            </Reader>
            <Listeners />                                          
        </ext:Store>
    </Store>
    <Listeners />
    <ColumnModel ID="columnModel" runat="server" />
    <SelectionModel>
        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
    </SelectionModel>   
    <Buttons>
        <ext:Button runat="server" ID="btnGridPanelInsertRow" Text="Insert" Icon="Add">
            <Listeners>
                <Click Handler="#{extGridPanel}.insertRecord(0, {});#{extGridPanel}.getView().focusRow(0);#{extGridPanel}.startEditing(0, 0);" />
            </Listeners>
        </ext:Button>

        <ext:Button runat="server" ID="btnGridPanelDeleteRow" Text="Delete selected records" Icon="Delete">
            <Listeners>
                <Click Handler="#{extGridPanel}.deleteSelected();" />
            </Listeners>
        </ext:Button>
        
        <ext:Button ID="Button1" runat="server" Text="Add">         
            <Listeners>             
                <Click Handler="#{extGridPanel}.startEditing(5, 1)" />         
            </Listeners>     
        </ext:Button> 
    </Buttons>      
</ext:GridPanel>
As you see, there are no listener and store defined directly inside ext. net grid panel but I create some properties on my grid panel and I read that properties to set the analogous ext. net grid panel.

I'm getting problem trying to replicate the Listeners "xml structure" for listeners properties. I try to explain better. For some properties, like Title, Width, Height, etc, I've created some properties inside my control

        private string _title;
        /// <summary>
        /// Get or set grid panel title. Deafult value is an empty string
        /// </summary>
        public string Title
        {
            get { return _title; }
            set { _title = value; }
        }

and when the control is loaded I set the analogous properties of the ext .net grid panel.

        private void SetGridProperties()
        {
            this.extGridPanel.Title = Title;
            this.extGridPanel.Width = Width;
            this.extGridPanel.Height = Height;
            this.objectDataSource.SelectMethod = ObjectDataSourceSelectMethod;
            this.objectDataSource.TypeName = ObjectDataSourceTypeName;
            this.btnGridPanelInsertRow.Hidden = !ShowInsertRowButton;
            this.btnGridPanelDeleteRow.Hidden = !ShowDeleteRowButton;
        }
The most important thing, is that when I add my custom grid panel in a aspx page, I get those propeties available in the intellisense.

The same does not happen also for Listeners properties, I mean I'm not able to have intellisense support for properties like Listeners as well. I'd like to continue to have also for my custom control Listeners properties as xml. Is it possible to "export" properties like Listeners and continue to have intellisense support for them? Do you know if there is a way to implement it? Do there is an article somewhere that explain how to implement it?

Any suggestion will be very appreciate!

Thanks.