вторник, января 19, 2010

Просто в архив ссылок

COMMON

How to: Install and Configure WCF Activation Components
0. http://msdn.microsoft.com/en-us/library/ms731053.aspx

0. A Guide to Designing and Building RESTful Web Services with WCF 3.5
http://msdn.microsoft.com/en-us/library/dd203052.aspx

документация по WCF REST Services
http://msdn.microsoft.com/en-us/library/ee391967.aspx

1. javascript class, расширяющий object методами расширения для сериализации/десериализации из json
http://www.json.org/json.js

2. json-сериализация в javascript
http://www.onegeek.com.au/articles/programming/javascript-serialization.php

3. как реализовать enum в javascript
http://www.javascriptkata.com/2007/03/22/how-to-do-enumerations-enum-in-javascript/


3.1 OOP в javascript - интересная статья
http://www.webmonkey.com/tutorial/Make_OOP_Classes_in_JavaScript

3.2 Классическое наследование в javascript
http://www.crockford.com/javascript/inheritance.html

4. Использование custom-templates во flex project
http://www.hemtalreja.com/?p=136
http://www.morearty.com/blog/2006/05/19/customizing-flex-builders-html-templates/


5. Библиотека для работы с JSON в Action Script
http://code.google.com/p/as3corelib/source/browse/trunk/tests/src/com/adobe/serialization/json/JSONTest.as?r=82

Использвание JSON
http://www.mikechambers.com/blog/2006/03/28/tutorial-using-json-with-flex-2-and-actionscript-3/
http://summitprojectsflashblog.wordpress.com/2008/11/06/json-and-nested-objects/
http://www.actionscript.org/resources/articles/516/1/JSON-Communication-with-Flash-Loading-Data/Page1.html

6. Настройка WCF as WEB Service
Интересная статья о том как настросить WCF Как WebService
http://kjellsj.blogspot.com/2006/12/how-to-expose-wcf-service-also-as-asmx.html
http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/03/19/WCF-Integration-in-Silverlight-2-Beta-1.aspx

7. Настройка WCF
CrossDomain & Clientaccesspolicy XML
http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx

Hosting
WCF Services and ASP.NET
http://msdn.microsoft.com/en-us/library/aa702682.aspx


8. Настройка прокси
http://support.microsoft.com/kb/318140


9. Интересная статья про появление злосчастной "d" в результатх json сериализации
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/83f486af-8249-461e-9d28-2a2df539c63e


10. ASP.NET Compatibility Mode
http://blogs.msdn.com/wenlong/archive/2006/01/23/516041.aspx


11. Compress your javascript and css files
http://www.scriptalizer.com/


12. Экранная типографика
http://www.artlebedev.ru/kovodstvo/sections/62/


13. Шрифты диапозоны и специальные символы
http://www.unicode.org/charts/



DevExpress


Последние версии AspxExperience
http://www.devexpress.com/Downloads/NET/DXperience/


Клиентский центр DX
http://www.devexpress.com/Support/Center/


community & Blogs
http://community.devexpress.com/
http://community.devexpress.com/blogs/


On-line Tutorials с исходным кодом
http://demos.devexpress.com/Tutorials/



ajax toolkit tab container customization:
http://mattberseth.com/blog/2007/09/creating_a_yui_tabview_style_t.html



html colors charts:
http://www.tayloredmktg.com/rgb/
http://www.febooti.com/products/iezoom/online-help/html-color-names-16-color-chart.html



SubVersion
Написание hook-ов
http://eugene.muzychenko.net/articles/software/numeric.txt
http://icons4swrus.com/subversion-na-svoem-kompyutere.php

release notes
http://subversion.tigris.org/svn_1.5_releasenotes.html

Интеграция с системами отслеживания ошибок/проблем
http://tortoisesvn.net/docs/nightly/TortoiseSVN_ru/tsvn-dug-bugtracker.html

Консультант по Subversion - его блог и интересные заметки
http://rocksun.cn/about/

Настройка прав доступа на отдельные каталоги:
Path-Based Authorization
http://svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html

Flex Links


0. Explorers

http://www.jamesward.com/easingFunctionFun/easingFunctionFun.html
http://www.madeinflex.com/img/entries/2007/05/customeasingexplorer.html
http://www.merhl.com/flex2_samples/filterExplorer/
http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html
http://www.flexonrails.net/stylescreator/public/

http://www.alex-uhlmann.de/flash/adobe/blog/distortionEffects/effectCube/

0. Performing object introspection - Аналог технологии Reflection
http://livedocs.adobe.com/flex/3/html/help.html?content=usingas_8.html

0. Flex Internals
http://www.docsultant.com/site2/articles/flex_internals.html


1. Flex 3 Essential Training with David Gassner
video lessons
http://www.lynda.com/home/DisplayCourse.aspx?lpk2=438


2. Load External CSS File
http://grfxguru.wordpress.com/2008/05/28/load-an-external-css-file-using-actionscript-3-sample-code/

3. Использование откомпилированных таблиц стилей
http://livedocs.adobe.com/flex/3/html/help.html?content=styles_10.html


4. Flex Component Kit Alpha for Flex 2.0.1
http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&loc=en_us&extid=1273018
The Flex Component Kit for Flash CS3 allows you to create interactive,
animated content in Flash, and use it in Flex as a Flex component.
This is an Alpha version that was built for Flex 2.0.1.
The final version will be included as part of the Flex 3 SDK.
You can watch the presentation at http://adobedev.adobe.acrobat.com/p75214263/ to learn more about the component kit.
It includes the steps required to prepare your Flash content for Flex, and examples of various interaction possibilities....


SUPPORT INFORMATION
None, the Flex 3 version will be supported. ZIP as updated on 10/10 to avoid corruption.


5. Flex Resources
Flex Components Flexbox
The Advanced Form component provides Reset, Undo and Redo functionality. Undo and Redo are accessed by pressing “ctrl-Z” and “ctrl-Y” respectively.
This component is part of flexlib (which is an awesome project). The source link above will download the whole flexlib library, you can get more information on using the flexlib components here
fle[ks]ray


Adobe Flex Components
Adobe Flex is a still young Developer Framework. For that reason there are not so many Open Source Projects out there like for other topics. Anyway, there are a few jewels. Components here


FlexLib
FlexLib is a source code repository for Flex components under an MIT license. The repository contains there open source components: ConvertibleTreeList, Draggable Slider, PromptingTextInput, Scrollable Menu Controls, SuperTabNavigator, Alternative Scrolling Canvases, Horizontal Accordion


FlexBox
FlexBox is a directory of 101 Flex components in a Flex RIA. It is a great source for locating various Flex components scattered all over the Internet.


FlexComponents Discussion List
If you are making components or extending Flex this is the mother of all lists. Backed by some of the framework engineers and packed with great devs, FlexComponents is a great resource.


Flex Exchange
Flex Exchange at Adobe.com is a directory of Flex components submitted by developers.


Adobe Flex cookbook beta
http://www.tiny.cc/VbU44


AnimatedGIfLoader Flex Component
Allows you to load animated gif files into your Flex applications
http://dougmccune.com/blog/animatedgifloader-flex-component/


Asdia
Provides an easy way to integrate flowcharts, uml or any other diagrams in flash tools.
http://code.google.com/p/asdia/


as3flexunitlib
ActionScript 3.0 framework for unit testing.
http://code.google.com/p/as3flexunitlib/


AsWing A3
Allows programmers to make their flash application(or RIA) UI easily
http://www.aswing.org/


Cairngorm
http://labs.adobe.com/wiki/index.php/Cairngorm


DisplayShelf Component
Provides a rich, templatable control to display a faux-3d view of a list of items
http://www.quietlyscheming.com/blog/components/tutorial-displayshelf-component/


flex2treemap
Treemap Component for Adobe Flex 2
http://code.google.com/p/flex2treemap/


flex4filemaker
Flex4FileMaker is an Adobe Flex 2 FileMaker API modeled after the FileMaker PHP library.
http://code.google.com/p/flex4filemaker/


FlexBook
Flex flip book component. Supports transparantcy.
http://www.quietlyscheming.com/blog/components/flexbook/


flexbox
Directory of Flex Components
http://flexbox.mrinalwadhwa.com/


flexcalendar
Flex Calendar Components
http://code.google.com/p/flexcalendar/


flexedtoolkit
Flexed Toolkit
http://code.google.com/p/flexedtoolkit/


FlexLib
community effort to create open source user interface components for Adobe Flex 2.
http://code.google.com/p/flexlib/


flexservicelocator
ServiceLocator for flex to use web service
http://code.google.com/p/flexservicelocator/


flextube
FlexTube is an flex UI front end for youtube
http://code.google.com/p/flextube/


Flex 2 Basic Email Form
Cut and dry example using an HTTP Service to send an email in Adobe Flex 2 via a simple PHP email script.
http://augiemarcello.com/flex-2-basic-email-form/


Flex 2 Debug Component
http://www.mikenimer.com/index.cfm/2006/7/5/FlexDebugPanel


Flex 2 Primitive Explorer
http://www.3gcomm.fr/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html


Flex Developers Journal
The first and only independent magazine serving Adobe Flex developers worldwide.
http://flex.sys-con.com/


Flex Style Explorer
http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html


Fluorine
FLUORINE is an open source .NET Flash Remoting Gateway.
http://fluorine.thesilentgroup.com


Free Visual Reflection Component for Flex 2
http://blog.benstucki.net/?id=20


Granite Data Services
Free, open source (LGPL’d), alternative to AdobeA® Flex 2 Data Services for J2EE application servers.
http://www.graniteds.org/confluence/display/INTRO/Granite+Data+Services


JAM - Just ActionScript and MXML
http://www.onflex.org/code/


Live reflectiona component
http://www.rictus.com/muchado/2006/07/05/live-reflection-component/


osflash-xray
Open Source Flash Debugger for AS2/AS3/Flex1.5/Flex2
http://code.google.com/p/osflash-xray/


scale nine
themes for flex and apollo/AIR
http://www.scalenine.com/


SpringGraph
Adobe Flex 2.0 component that displays a set of items that are linked to each other.
http://mark-shepherd.com/blog/springgraph-flex-component/


The Flex Show
Jeffry Houser and Ryan Stewart’s Poscast covering Flex related topics.
http://www.theflexshow.com/blog


The ServeBox Foundry
Based on several design patterns, and includes tools built to resolve some of the recurrent Flex 2 development challenges.
http://sourceforge.net/projects/sbasfoundry


Yahoo Astra Components
Tree, Menu, TabBar, AutoComplete, and Charts
http://developer.yahoo.com/flash/astra-flash


Yahoo! Maps Web Services - Flexa„? API
http://developer.yahoo.com/maps/flash/flexGettingStarted.html


ZoomFrame
http://www.zeuslabs.us/2007/08/14/open-source-flex-component-zoomframe/


6. Eclipse & Subversion
http://subclipse.tigris.org/servlets/ProjectProcess;jsessionid=94A3F7DC2D06438DF2CB9C249CF2A1D8?pageID=p4wYuA


7. Загрузка шрифтов и их внедрение runtime
http://www.flashmorgan.com/index.php/2007/06/18/runtime-font-embedding-in-as3-there-is-no-need-to-embed-the-entire-fontset-anymore/
http://nochump.com/blog/?p=20

* Uppercase : U+0020,U+0041-U+005A
* Lowercase : U+0020,U+0061-U+007A
* Numerals : U+0030-U+0039,U+002E
* Punctuation : U+0020-U+002F,U+003A-U+0040,U+005B-U+0060,U+007B-U+007E
* Basic Latin : U+0020-U+002F, U+0030-U+0039, U+003A-U+0040, U+0041-U+005A, U+005B-U+0060, U+0061-U+007A, U+007B-U+007E


Flex Tips

0. Reducing module size

___________________________________________________________________
http://livedocs.adobe.com/flex/3/html/modular_4.html

Module size varies based on the components and classes that are used in the module.
By default, a module includes all framework code that its components depend on,
which can cause modules to be large by linking classes that overlap with the application's classes.
To reduce the size of the modules, you can optimize the module by instructing it to externalize classes
that are included by the application.
This includes custom classes and framework classes.
The result is that the module includes only the classes it requires,
while the framework code and other dependencies are included in the application.
To externalize framework classes with the command-line compiler,
you generate a linker report from the application that loads the modules.
You then use this report as input to the module's load-externs compiler option.
The compiler externalizes all classes from the module for which the application contains definitions.
This process is also necessary if your modules are in a separate project from your main application in Flex Builder.


Create and use a linker report with the command-line compiler


1. Generate the linker report and compile the application:


mxmlc -link-report=report.xml MyApplication.mxml



The default output location of the linker report is the same directory as the compiler. In this case, it would be in the bin directory.
2. Compile the module and pass the linker report to the load-externs option:


mxmlc -load-externs=report.xml MyModule.mxml


Microsoft.ACE.OLEDB.12.0 & 2007 Office System Driver: Data Connectivity Components

Нужно брать здесь:
http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=7554f536-8c28-4598-9b72-ef94e038c891&displayLang=en

воскресенье, января 17, 2010

CallbackHandlerControl - серверный контрол для выполнения callback-запроса своими руками :)


исходные коды

По мотивам темы Как выполнить callback со стороны клиента на сервер в ASP.NET

Итак, чтобы каждый раз не писать/дублировать код - создаем контрол, обязанностями которого будет выполнение Callback-запроса на сервер и возврат ответа со стороны сервера и возврат его на клиента ...

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

Итак, все сказанное может выглядеть в разметке страницы или вашего user-control следующим образом:



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CallbackHandlerControl._Default" %>

<%@ Register assembly="CallbackHandlerControl" namespace="CallbackHandlerControl.Controls" tagprefix="cc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>This is a Callback Handle Control Test Page</title>

<script language="javascript" type="text/javascript">
function btnCallServer_clientHandler() {
callServerHandler("argument");
}

function onSuccessfullHandler(result) {
alert(result);
}

function onErrorClientHandler(result) {
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div>

<h1>This is a Callback Handle Control Test Page</h1><br />
<asp:button ID="btnCallServer"
runat="server" text="Script service method invocation"
OnClientClick="btnCallServer_clientHandler();return false;">
</asp:button>

<cc1:CallbackEventHandler ID="callbackHandler" runat="server"
OnClientDataReceived="callbackHandler_ClientDataReceived"
OnSuccessfullClientHandler="onSuccessfullHandler"
OnErrorClientHandler="onErrorClientHandler"
ServerCallFunctionName="callServerHandler"/>

</div>
</form>
</body>
</html>





Обращаем внимание на серверный обработчик серверного события ClientDataReceived - OnClientDataReceived -
данный обработчик будет использован на стороне сервера при получении данных со стороны клиента,
а также для формирования данных, которые будут отправлены на клиента в качестве ответа.



Сам code-behind класс страницы:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CallbackHandlerControl
{
/// <summary>
/// This is a Callback Handle Control Test Page
/// </summary>
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

#region event handlers
protected void callbackHandler_ClientDataReceived(object sender, CallbackHandlerControl.Controls.ClientDataReceivedEventArgs e)
{
string clientData = e.ClientData;
e.Cancel = false;
e.ServerResponse = DateTime.Now.ToString();
}
#endregion
}
}




Итак, сам текст нашего контрола:


using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CallbackHandlerControl.Controls
{

/// <summary>
/// Кконтрол выполняет callback обращение на серверную сторону со стороны клиента
/// </summary>
[ToolboxData("<{0}:CallbackEventHandler ID=\"callbackHandler\" runat=\"server\"> </{0}:CallbackEventHandler>")]
public partial class CallbackEventHandler : System.Web.UI.WebControls.WebControl, ICallbackEventHandler
{
#region events
/// <summary>
/// Данное событие будет подниматься в случае получения данных со стороны клиента
/// на сервеной стороне в контроле <see cref="WebSite.WebModules.Common.Callbacks.CallbackEventHandler"/>
/// </summary>
[Browsable(true)]
[Category("Callback Handlers")]
[Description("Данное событие будет подниматься в случае получения данных со стороны клиента на сервеной стороне в контроле WebSite.WebModules.Common.Callbacks.CallbackEventHandler")]
public event EventHandler<ClientDataReceivedEventArgs> ClientDataReceived;

/// <summary>
/// Данные, полученные со стороны клиента, а также отправляемые со стороны сервера клиенту
/// </summary>
private ClientDataReceivedEventArgs Arguments = null;
#endregion

#region fields & properties

/// <summary>
/// ViewState ключи
/// </summary>
private string SuccessfullClientHandlerViewStateID
{
get
{
return this.ID + "_SuccessfullClientHandler";
}
}

/// <summary>
/// ViewState ключи
/// </summary>
private string ErrorClientHandlerViewStateID
{
get
{
return this.ID + "_ErrorClientHandler";
}
}

/// <summary>
/// ViewState ключи
/// </summary>
private string ServerCallFunctionNameViewStateID
{
get
{
return this.ID + "_ServerCallFunctionName";
}
}

/// <summary>
/// Имя сценария, который будет вызван в случае успешного обращения на сервер
/// </summary>
[Browsable(true)]
[Category("Callback Handlers")]
[DefaultValue("onSuccessfullClientHandler")]
[Description("Имя сценария, который будет вызван в случае успешного обращения на сервер")]
public string OnSuccessfullClientHandler
{
get
{
if (ViewState[SuccessfullClientHandlerViewStateID] != null)
return (String)ViewState[SuccessfullClientHandlerViewStateID];
else
return "";
}
set
{
ViewState[SuccessfullClientHandlerViewStateID] = value;
}
}

/// <summary>
/// Имя сценария, который будет вызван в случае неудачного обращения на сервер
/// </summary>
[Browsable(true)]
[Category("Callback Handlers")]
[DefaultValue("onErrorClientHandler")]
[Description("Имя сценария, который будет вызван в случае неудачного обращения на сервер")]
public string OnErrorClientHandler
{
get
{
if (ViewState[ErrorClientHandlerViewStateID] != null)
return (String)ViewState[ErrorClientHandlerViewStateID];
else
return "";
}
set
{
ViewState[ErrorClientHandlerViewStateID] = value;
}
}

/// <summary>
/// Имя функции, которая будет использоваться для вызова серверного сценария со стороны клиента, принимает один аргумент ARG в виде строки
/// </summary>
[Browsable(true)]
[Category("Callback Handlers")]
[DefaultValue("serverCall")]
[Description("Имя функции, которая будет использоваться для вызова серверного сценария со стороны клиента, принимает один аргумент ARG в виде строки ")]
public string ServerCallFunctionName
{
get
{
if (ViewState[ServerCallFunctionNameViewStateID] != null)
return (String)ViewState[ServerCallFunctionNameViewStateID];
else
return "";
}
set
{
ViewState[ServerCallFunctionNameViewStateID] = value;
}
}
#endregion

protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
string webFormDoCallbackScript = this.Page.ClientScript.GetCallbackEventReference(this, "arg", this.OnSuccessfullClientHandler, null, true);
string serverCallScript = "function " + this.ServerCallFunctionName + "(arg){" + webFormDoCallbackScript + ";\n}\n";

if (!this.Page.ClientScript.IsClientScriptBlockRegistered(this.ServerCallFunctionName))
{
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), this.ServerCallFunctionName, serverCallScript, true);
}
}

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);

}

#region ICallbackEventHandler Members

public string GetCallbackResult()
{
// прошла обработка данных в Argumets на стороне сервера, отправляем результат на клиента
if (this.Arguments != null)
{
return this.Arguments.ServerResponse;
}
else
return "";
}

public void RaiseCallbackEvent(string eventArgument)
{
this.OnClientArgumentReceived(eventArgument);
}

#endregion

#region event handlers

public virtual void OnClientArgumentReceived(string eventArgument)
{
if (this.ClientDataReceived != null)
{
this.Arguments = new ClientDataReceivedEventArgs
{
ClientData = eventArgument
};

this.ClientDataReceived(this, this.Arguments);
}

}
#endregion

}
}


Обратите внимание на реализацию интерфейса ICallbackEventHandler, смысл которого был описан ранее в статье Как выполнить callback со стороны клиента на сервер в ASP.NET


Обращаем также внимание на код обработчика callbackHandler_ClientDataReceived в коде нашего code-behind класса страницы,
который был декларативно указан в разметке страницы в обработке контрола в строке
OnClientDataReceived="callbackHandler_ClientDataReceived".


protected void callbackHandler_ClientDataReceived(object sender, CallbackHandlerControl.Controls.ClientDataReceivedEventArgs e)
{
string clientData = e.ClientData;
e.Cancel = false;
e.ServerResponse = DateTime.Now.ToString();
}


Именно в нем мы получаем данные со стороны клиента, и подготавлиаем данные, отправляемые на клиента со стороны сервера



Данный обработчик принимает аргумент класса-наследника EventArgs - ClientDataReceivedEventArgs, которое содержит как данные, полученные со стороны клиента, так и данные, которые
будут отправлены клиентской стороне в качестве ответа от сервера. Нужно помнить также о том, что мы всегда можем отправить как со стороны сервера, так и со стороны клиента сложные объекты, использую сериализацию в строку -
потому вполне достаточно ограничиться строковоыми типами данных.





Само событие в коде нашего контрола выглядит следущим образом:

/// <summary>
/// Данное событие будет подниматься в случае получения данных со стороны клиента
/// на сервеной стороне в контроле <see cref="WebSite.WebModules.Common.Callbacks.CallbackEventHandler"/>
/// </summary>
[Browsable(true)]
[Category("Callback Handlers")]
[Description("Данное событие будет подниматься в случае получения данных со стороны клиента на сервеной стороне в контроле WebSite.WebModules.Common.Callbacks.CallbackEventHandler")]
public event EventHandler<ClientDataReceivedEventArgs> ClientDataReceived;




Как видите, обработчик события ClientDataReceived должен принимать аргумент класса ClientDataReceivedEventArgs, код которого представлен ниже:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace CallbackHandlerControl.Controls
{
/// <summary>
/// Параметры события ClientDataReceivedEvent, которое будет подниматься в случае получения данных со стороны клиента
/// на сервеной стороне в контроле <see cref="WebSite.WebModules.Common.Callbacks.CallbackEventHandler"/>
/// </summary>
public class ClientDataReceivedEventArgs : EventArgs
{

/// <summary>
/// Строка, отправленная со стороны клиента на сервер - это может быть как простой аргумент, так и
/// серилиазованное состояние объекта
/// </summary>
public string ClientData = "";

/// <summary>
/// Ответ от сервера, отправляемый на клиента - это может быть сериализованное состояние объекта или просто строка;
/// Логика по обработке данной строки лежит на стороне клиента
/// </summary>
public string ServerResponse = "";

/// <summary>
/// Данный флаг определяет, завершить цепочку выполнения Callback или нет
/// </summary>
public bool Cancel = false;
}
}




Ну и пара скриншотов:

результат выполнения callback по клику на кнопке на странице, разметка которого приведена в начале страницы:






Контрол в режиме редактирования на странице





Удачи в использовании.

ps: возможно, получилось сумбурно, но мне кажется, разобравшись с принципом проведения Callback-запроса третьим описанным способом из статьи Как выполнить callback со стороны клиента на сервер в ASP.NET
код (доступен по ссылке в начале статьи ) и принцип работы самого контрола становится понятным.

среда, января 13, 2010

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



и это сообщение - дань твоей памяти