من میخواستم بدونم این تیکه از کد رو باید نوشت؟
public ViewDataDictionary ViewData { get; set; }
public ViewDataDictionary ViewData { get; set; }
using System; using System.ComponentModel.DataAnnotations; namespace Test { [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] public class CompareAttribute : ValidationAttribute { public CompareAttribute(string originalProperty, string confirmProperty) { OriginalProperty = originalProperty; ConfirmProperty = confirmProperty; } public string ConfirmProperty { get; private set; } public string OriginalProperty { get; private set; } protected override ValidationResult IsValid(object value, ValidationContext ctx) { if (value == null) return new ValidationResult("لطفا فیلدها را تکمیل نمائید"); var confirmProperty = ctx.ObjectType.GetProperty(ConfirmProperty); if (confirmProperty == null) throw new InvalidOperationException(string.Format("لطفا فیلد {0} را تعریف نمائید", ConfirmProperty)); var confirmValue = confirmProperty.GetValue(ctx.ObjectInstance, null) as string; if (string.IsNullOrWhiteSpace(confirmValue)) return new ValidationResult(string.Format("لطفا فیلد {0} را تکمیل نمائید", ConfirmProperty)); var originalProperty = ctx.ObjectType.GetProperty(OriginalProperty); if (originalProperty == null) throw new InvalidOperationException(string.Format("لطفا فیلد {0} را تعریف نمائید", OriginalProperty)); var originalValue = originalProperty.GetValue(ctx.ObjectInstance, null) as string; if (string.IsNullOrWhiteSpace(originalValue)) return new ValidationResult(string.Format("لطفا فیلد {0} را تکمیل نمائید", OriginalProperty)); return originalValue == confirmValue ? ValidationResult.Success : new ValidationResult("مقادیر وارد شده یکسان نیستند"); } } }
آمار بازدید به تفکیک کشورها
آمار بازدید به تفکیک کشورها و درصد بازدید بر روی نمودار
آمار بازدید بر روی نقشه گوگل به تفکیک کشورها و تعداد بازدید
گاهی اوقات برای زنده نگاه داشتن (Keep Alive) اپلیکیشن باید در بازههای زمانی مشخص سایت را پینگ کرد. برای اینکه این بازدیدها در آمار ما تاثیر نگذارند، میتوان از صفحه تنظیمات آنها را جزو آمار حساب نکرد.
به روز رسانی اول :
به روز رسانی دوم:
به روز رسانی سوم:
به روز رسانی چهارم:
public class LoggerFactory : ILoggerFactory
{
public IInternalLogger LoggerFor(System.Type type)
{
if (type == typeof(NHibernate.Tool.hbm2ddl.SchemaExport))
//log it
}
public IInternalLogger LoggerFor(string keyName)
{
if (keyName == "NHibernate.SQL")
//log it
}
}
<appSettings>
<add key="nhibernate-logger" value="NH3SQLLogger.LoggerFactory, NH3SQLLogger" />
</appSettings>
public class Form { public string Name { get; set; } public string Title { get; set; } public List<BaseElement> Elements { get; set; } } public abstract class BaseElement { public string Name { get; set; } public string Title { get; set; } } public class Section : BaseElement { public List<TextBox> Elements { get; set; } } public class TextBox : BaseElement { public string Value { get; set; } public string CssClass { get; set; } }
public class FormBuilderController : Controller { // // GET: /FormBuilder/ public ActionResult Index() { var form = new Form(); var section = new Section() { Title = "Basic Info", Name = "section01" }; section.Elements.Add(new TextBox() { Name = "txt1", Title = "First Text Box" }); form.Elements.Add(new TextBox() { Name = "txt1", Title = "Second Text Box" }); var formJson=JsonConvert.SerializeObject(form); return View(formJson); } }
<script type="text/ng-template" id="ElementTemplate"> <div ng-if="control.Type == 'JbSection'"> <h2>{{control.Title}}</h2> <ul> <li ng-repeat="control in control.Elements" ng-include="'ElementTemplate'"></li> </ul> </div> </script>
<script type="text/ng-template" id="element.html"> {{data.label}} <ul> <li ng-repeat="element in data.elements" ng-include="'element.html'"></li> </ul> </script> <ul ng-controller="NestedFormCtrl"> <li ng-repeat="field in formData" ng-include="'element.html'"></li> </ul>
@model string @Html.Kendo().Upload().Name("@ViewData.ModelMetadata.PropertyName")
[UIHint("Upload")] public string ImageUrl {set;get;}
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Script.Services;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.HtmlControls;
namespace AjaxTest
{
public class KeyVal
{
public string Key { set; get; }
public object Value { set; get; }
}
/// <summary>
/// Summary description for Ajax
/// </summary>
[ScriptService]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class Ajax : WebService
{
/// <summary>
/// Removes Form tags using Regular Expression
/// </summary>
private static string cleanHtml(string html)
{
return Regex.Replace(html, @"<[/]?(form)[^>]*?>", string.Empty, RegexOptions.IgnoreCase);
}
/// <summary>
/// تبدیل یک یوزر کنترل به معادل اچ تی ام ال آن
/// </summary>
/// <param name="path">مسیر یوزر کنترل</param>
/// <param name="properties">لیست خواص به همراه مقادیر مورد نظر</param>
/// <returns></returns>
/// <exception cref="NotImplementedException"><c>NotImplementedException</c>.</exception>
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string RenderUserControl(string path,
List<KeyVal> properties)
{
Page pageHolder = new Page();
UserControl viewControl =
(UserControl)pageHolder.LoadControl(path);
viewControl.EnableViewState = false;
Type viewControlType = viewControl.GetType();
if (properties != null)
foreach (var pair in properties)
{
if (pair.Key != null)
{
PropertyInfo property =
viewControlType.GetProperty(pair.Key);
if (property != null)
{
if (pair.Value != null) property.SetValue(viewControl, pair.Value, null);
}
else
{
throw new NotImplementedException(string.Format(
"UserControl: {0} does not have a public {1} property.",
path, pair.Key));
}
}
}
//Form control is mandatory on page control to process User Controls
HtmlForm form = new HtmlForm();
//Add user control to the form
form.Controls.Add(viewControl);
//Add form to the page
pageHolder.Controls.Add(form);
//Write the control Html to text writer
StringWriter textWriter = new StringWriter();
//execute page on server
HttpContext.Current.Server.Execute(pageHolder, textWriter, false);
// Clean up code and return html
return cleanHtml(textWriter.ToString());
}
}
}
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="10000000"></jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
$.fn.advloaduc = function(options) {
var defaults = {
webServiceName: 'Ajax.asmx', //نام فایل وب سرویس ما
renderUCMethod: 'RenderUserControl', //متد وب سرویس
ucMethodJsonParams: '{path:\'\'}',//پارامترهایی که قرار است پاس شوند
completeHandler: null //پس از پایان کار وب سرویس این متد جاوا اسکریپتی فراخوانی میشود
};
var options = $.extend(defaults, options);
return this.each(function() {
var obj = $(this);
obj.prepend("<div align='center'> لطفا اندکی تامل بفرمائید... <img src=\"images/loading.gif\"/></div>");
$.ajax({
type: "POST",
url: options.webServiceName + "/" + options.renderUCMethod,
data: options.ucMethodJsonParams,
contentType: "application/json; charset=utf-8",
dataType: "json",
success:
function(msg) {
obj.html(msg.d);
// if specified make callback and pass element
if (options.completeHandler)
options.completeHandler(this);
},
error:
function(XMLHttpRequest, textStatus, errorThrown) {
obj.html("امکان اتصال به سرور در این لحظه مقدور نیست. لطفا مجددا سعی کنید.");
}
});
});
};
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="part1.ascx.cs" Inherits="TestJQueryAjax.part1" %>
<asp:Label runat="server" ID="lblData" ></asp:Label>
using System;
using System.Threading;
namespace TestJQueryAjax
{
public partial class part1 : System.Web.UI.UserControl
{
public string Text1 { set; get; }
public string Text2 { set; get; }
protected void Page_Load(object sender, EventArgs e)
{
Thread.Sleep(3000);
if (!string.IsNullOrEmpty(Text1) && !string.IsNullOrEmpty(Text2))
lblData.Text = Text1 + "<br/>" + Text2;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestJQueryAjax._Default" %>
<!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></title>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.advloaduc.js" type="text/javascript"></script>
<script src="js/json2.js" type="text/javascript"></script>
<script type="text/javascript">
function showAlert() {
alert('finished!');
}
//تشکیل پارامترهای متد وب سرویس جهت ارسال به آن
var fileName = 'part1.ascx';
var props = [{ 'Key': 'Text1', 'Value': 'سطر یک' }, { 'Key': 'Text2', 'Value': 'سطر 2'}];
var jsonText = JSON.stringify({ path: fileName, properties: props });
$(document).ready(function() {
$("#loadMyUc").advloaduc({
webServiceName: 'Ajax.asmx',
renderUCMethod: 'RenderUserControl',
ucMethodJsonParams: jsonText,
completeHandler: showAlert
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="loadMyUc">
</div>
</form>
</body>
</html>
public class MySettings { public string StringSetting { get; set; } public int IntSetting { get; set; }
public List<string> ListValues { get; } = new List<string>();
public ISet<string> Values { get; set; }
public ISet<string> Values { get; } = new HashSet<string>(StringComparer.OrdinalIgnoreCase);