using HX.DHL.EIP.Services.Def.Localization;
using HX.DHL.EIP.Web.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms; namespace HX.DHL.EIP.Web.UserControl
{
public partial class TabLocatedRender : EIPUserControlBase
{
public ILanguageService Languageservice { get; set; }
public string FirstInputData="";
public string SecondInputData = "";
public string DefaultDivId = "";
//新建一个容器
StringBuilder LgTab = new StringBuilder();
protected void Page_Load(object sender, EventArgs e)
{ LgTab.Append("<div>");
LgTab.Append("<table style='padding: 0px; margin: 0px; height: 100%;' cellpadding='0' cellspacing='0'>");
LgTab.Append("<tr>");
LgTab.Append("<td id='menutab' style='vertical-align: bottom;'>");
LgTab.AppendLine("<input ID='CurrentLanguage' type='hidden' />");
LgTab.AppendLine("<input ID='FirstInput' type='hidden'/>");
LgTab.AppendLine("<input ID='SecondInput' type='hidden'/>");
//LgTab.Append("<form method='post' name='' action='~/Base/Language/Form.aspx'/>");
LgTab.AppendLine("<input ID='AllLocalData' name='AllLocalDataName' />");
//LgTab.Append("</form>");
//取数据库中语言
var lgdata = this.Languageservice.GetAllLanguages(false);
foreach (var lg in lgdata)
{
var innerHtml = lg.Name;
var divId = lg.LanguageCulture;
LgTab.AppendLine(string.Concat(new object[]
{
"<div id='",divId,"' onclick=\"ChangeDiv('",divId,"')\">"+innerHtml+"</div>"
}));
}
DefaultDivId = lgdata.First().LanguageCulture;
LgTab.Append(" <script type='text/javascript'>");
LgTab.AppendLine(string.Concat(new object[]
{
"document.getElementById(\"CurrentLanguage\").value = '",DefaultDivId,"';"
}));
LgTab.AppendLine(string.Concat(new object[]
{
"document.getElementById(\"FirstInput\").value = '",FirstInputData,"';"
}));
LgTab.AppendLine(string.Concat(new object[]
{
"document.getElementById(\"SecondInput\").value = '",SecondInputData,"';"
}));
LgTab.Append("var templg = $(\"#CurrentLanguage\").val();");
LgTab.Append("var FirstInputData = $(\"#FirstInput\").val();");
LgTab.Append("var SecondInputData = $(\"#SecondInput\").val();");
LgTab.Append("GetTabClick($(\"#\" + templg)[0]);");
LgTab.Append("var arr = new Array();");
LgTab.Append("var AllData=\"\";");
//多语言的字段需加属性onblur,失去焦点时保存本页多语言字段。
LgTab.Append("$(\"#\"+FirstInputData).onblur = SaveThisTab();");
LgTab.Append("$(\"#\"+SecondInputData).onblur = SaveThisTab();");
LgTab.Append(string.Concat(new object[]
{ "function ChangeDiv(divId){SaveThisTab(divId);ChangeTab(divId);TakeNextTab(divId);}"
}));
LgTab.Append(string.Concat(new object[]
{ "function ChangeTab(divId){ GetTabClick($(\"#\" + divId)[0]);document.getElementById(\"CurrentLanguage\").value = divId;}"
}));
LgTab.Append(string.Concat(new object[]
{
"function SaveThisTab(){ var ThisDivId = $(\"#CurrentLanguage\").val();var FirstInputDataString = $(\"#",FirstInputData,"\").val();var SecondInputDataString = $(\"#",SecondInputData,"\").val();arr[ThisDivId]=FirstInputDataString+\"|\"+SecondInputDataString;AllData=\"\";for(var lgId in arr){AllData=AllData+lgId+\":\"+arr[lgId]+\";\";}document.getElementById(\"AllLocalData\").value = AllData;}"
}));
LgTab.Append(string.Concat(new object[]
{
"function TakeNextTab(divId){document.getElementById(\"",FirstInputData,"\").value = null;document.getElementById(\"",SecondInputData,"\").value = null;if(arr[divId]!=null){var strs=arr[divId].split(\"|\");document.getElementById(\"",FirstInputData,"\").value = strs[0];document.getElementById(\"",SecondInputData,"\").value = strs[1];}}"
}));
LgTab.Append("</script>");
LgTab.Append("</td>");
LgTab.Append("</tr>");
LgTab.Append("</table>");
LgTab.Append("</div>"); lt.Text = LgTab.ToString();
}
public void GetInput(string inputone, string inputtwo)
{
FirstInputData = inputone;
//FirstInputData = "CurrentLanguage";
if (inputtwo == "")
{
SecondInputData = inputone;
}
else
{
SecondInputData = inputtwo;
}
}
}
}

上述是TabLocatedRender.ascx.cs的内容

然后在TabLocatedRender.ascx这里面放入一个占位符,插入后台的东西

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TabLocatedRender.ascx.cs" Inherits="HX.DHL.EIP.Web.UserControl.TabLocatedRender" %>
<script src="/Themes/Scripts/Common/common.js"></script>
<asp:Literal ID="lt" runat="server"></asp:Literal>

然后一个简单的自定义控件就生成了。

这样的控件在使用的时候呢,Form.aspx必须要有@Register

<%@ Page Title="语言管理" Language="C#" MasterPageFile="~/Base/Base.Master" AutoEventWireup="true" CodeBehind="Form.aspx.cs" Inherits="HX.DHL.EIP.Web.Base.Language.Form" %>

<%@ Register Src="~/UserControl/TabLocatedRender.ascx" TagPrefix="uc1" TagName="TabLocatedRender" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<uc1:TabLocatedRender runat="server" id="TabLocatedRender" />
<%-- <div>
<table style="padding: 0px; margin: 0px; height: 100%;" cellpadding="0" cellspacing="0">
<tr>
<td id="menutab" style="vertical-align: bottom;">
<asp:TextBox ID="CurrentLanguage" runat="server" CssClass="hidden"></asp:TextBox>
<script type="text/javascript">
function addDiv() {
var param = "";
AjaxAction('/Base/Language/Form.aspx', 'GetItems', param, function (rs) {
var items = rs.Data;
$.each(items, function (i, v) {
var item = v;
var div = document.createElement("div");
div.id = item.LanguageCulture;
div.innerHTML = item.Name;
div.onclick = function remo() {
CallWebMethod("ChangeTab", "", this.id);
};
menutab.appendChild(div);
}); //$("#tab1")[0] 其中$("#tab1")这个是jquery的对象,加[0]转换成document对象
var templg = $("#CurrentLanguage").val();
GetTabClick($("#" + templg)[0]);
}); }
</script>
</td>
</tr>
</table>
</div>--%>
<table class="frm" id="langTable">
<tr>
<th><span id="result_box" class="short_text" lang="zh-CN"><span>语言</span><span class="">文化</span></span>:
</th>
<td>
<select id="LanguageCulture" class="middleplus_width" runat="server" datatype="*1-20" enableviewstate="true"></select>
</td>
</tr>
<tr>
<th>
<%--<img src="/Themes/Images/16/flag_orange.png" />--%>
<span class="localization">名称:</span>
</th>
<td>
<input id="Name" runat="server" type="text" datatype="*1-20" class="localization_background" value="多语言字段"/>
</td>
</tr>
<tr>
<th><span id="result_box0" class="short_text" lang="zh-CN"><span class="">SEO代码</span></span>:
</th>
<td>
<input id="UniqueSeoCode" runat="server" type="text" datatype="*1-2" style="width:90%" />
</td>
</tr>
<tr>
<th>国旗图标:
</th>
<td>
<input id="txtFlagImageFileName" type="hidden" runat="server"/>
<img id="imgbutton" src="/Themes/Images/illustration.png" runat="server" alt=""
style="vertical-align: middle; padding-right: 10px;" />
<a id="selectFlag" href="javascript:void(0)" class="button green" onclick="SelectOpenImg()">选择国旗</a>
</td>
</tr>
<tr>
<th>从右到左:
</th>
<td>
<%--datacol="yes" err="自定义"--%>
<%--<input id="Rtl" runat="server" type="text" datatype="*1-20" style="width:90%" />--%>
<input id="Rtl" type="checkbox" runat="server" onclick="" style="width:90%" />
</td>
</tr>
<tr>
<th>语言编号:
</th>
<td>
<%--datacol="yes" err="自定义"这两个属性值目前是有没有都可以--%>
<input id="OrderID" runat="server" type="text" datatype="n1-20" style="width:90%" />
</td>
</tr>
</table> <div class="frm-bottom-center">
<asp:LinkButton ID="Save" runat="server" class="l-btn" OnClientClick="return Valid('form1');"
OnClick="Save_Click"><span class="l-btn-left">
<img src="/Themes/Images/disk.png" alt="" />保 存</span></asp:LinkButton>
<a class="l-btn" href="javascript:void(0)" onclick="OpenClose();"><span class="l-btn-left">
<img src="/Themes/Images/cancel.png" alt="" />关 闭</span></a> </div>
</asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="FooterScript" runat="server">
<script type="text/javascript">
//初始化
$(function () {
// addDiv();
// var templg = $("#CurrentLanguage").val();
// GetTabClick($("#"+templg)[0]);
//var arrr = new Array();
//var a = "";
//arrr["qq"] = "qqq";
//arrr["ww"] = "www";
//for (var item in arrr) {
// alert(arrr[item]);
// a = a + item + ":" + arrr[item];
// alert(a);
//}
}) function onkeyButton_Name(text) {
$("#Button_Title").val(text);
}
//全取系统图标
function SelectOpenImg() {
var url = "/Base/Menu/IconsList.aspx?Size=16&prefix=flag";
top.openDialog(url, 'Icons_List', '国旗图标 - 全取', 615, 400, 100, 100);
}
//全取图标回调赋值
function Get_Menu_Img(img) {
$("#imgbutton").attr("src", '/Themes/Images/16/' + img);
$("#txtFlagImageFileName").val(img); } $("#txtType_0").click(function () {
$("#ImgType").attr("disabled", true);
$("#Src").attr("disabled", true);
});
$("#txtType_1").click(function () {
$("#ImgType").attr("disabled", false);
$("#Src").attr("disabled", false); }); </script> </asp:Content>

这样就加入了该文件中的内容

(十)ASP.NET自定义用户控件(3)的更多相关文章

  1. (九)ASP.NET自定义用户控件(2)

    http://www.cnblogs.com/SkySoot/archive/2012/09/04/2670678.html 用户控件 在 .NET 里,可以通过两种方式把自己的控件插入到 Web 窗 ...

  2. (八)ASP.NET自定义用户控件(1)

    http://blog.csdn.net/laodao1/article/details/5897366 ASP.NET自定义控件组件开发 第一章:从一个简单的控件谈起 起始开发ASP.NET自定义控 ...

  3. Windows phone 自定义用户控件(UserControl)——ColorPicker

    编码前 学习Windows phone自定义用户控件,在<WPF编程宝典>学习的小例子.并根据windows phone稍微的不同,做了点修改.ColorPicker(颜色拾取器):拥有三 ...

  4. 2018-8-10-win10-uwp-验证输入-自定义用户控件

    title author date CreateTime categories win10 uwp 验证输入 自定义用户控件 lindexi 2018-08-10 19:16:51 +0800 201 ...

  5. 在Winform界面使用自定义用户控件及TabelPanel和StackPanel布局控件

    在很多时候,我们做一些非常规化的界面的时候,往往需要创建一些用户控件,在其中绘制好一些基础的界面块,作为后续重复使用的一个单元,用户控件同时也可以封装处理一些简单的逻辑.在开发Winform各种类型项 ...

  6. asp.net读取用户控件,自定义加载用户控件

    1.自定义加载用户控件 ceshi.aspx页面 <html> <body> <div id="divControls" runat="se ...

  7. 浅尝辄止WPF自定义用户控件(实现颜色调制器)

    主要利用用户控件实现一个自定义的颜色调制控件,实现一个小小的功能,具体实现界面如下. 首先自己新建一个wpf的用户控件类,我就放在我的wpf项目的一个文件夹下面,因为是一个很小的东西,所以就没有用mv ...

  8. C# 自定义用户控件

    上篇:控件制作 本例是制作一个简单的自定义控件,然后用一个简单的测试程序,对于初学者来说,本例子比较简单,只能起到抛石引玉的效果.我也是在学习当中,今后会将自己所学的逐步写出来和大家交流共享. 第一步 ...

  9. ASP.NET的用户控件

    本文介绍如何在ASP.NET中创建用户控件,控件属性的动态修改以及控件的事件出发机制. 简介ASP.NET的服务端控件使得Web开发工作变得更为简单,功能更为强大.我们介绍过如何在ASP.NET页面中 ...

随机推荐

  1. asp+jquery+ajax,asp后台程序执行不正常

    项目中前台页面通过jquery .ajax功能将关键数据传递到后台并写入数据库,调试中发现后台程序一直没有正常执行,后反复排查 发现asp程序中不能包含#include file语句

  2. RHEL6 64位ASM方式安装oracle 11gR2(一)

    本文转载自 http://vnimos.blog.51cto.com/2014866/1221361 一.安装前的准备 1.1 确定操作系统环境 1 2 3 4 5 6 7 8 9 10 11 12 ...

  3. Maven使用阿里云镜像

    Maven确实是个好用的东西,不过在国内的话下载速度不够快,推荐使用阿里云的镜像,配置方法还是比较简单,这里是全局的配置文件 settings.xml中的内容: <settings xmlns= ...

  4. 阿里云openapi接口使用,PHP,视频直播

    1.下载sdk放入项目文件夹中 核心就是aliyun-php-sdk-core,它的配置文件会自动加载相应的类 2.引入文件 include_once LIB_PATH . 'ORG/aliyun-o ...

  5. thinkphp模板中for循环与switch的使用

    1.for用法 <for start="开始值" end="结束值" comparison="" step="步进值&quo ...

  6. 安全测试回顾(一)补充:burp 的基本操作

    浏览器设置; 拦截请求: Spider 伪造请求: 对这个url 伪造请求 拦截一个页面后,进入攻击模块 sniper  两个参数值 保证一个不变  另一个 进行枚举 battering ram 两个 ...

  7. windows下使用nginx

    本文介绍如何在windows下使用nginx 起步 下载安装 将nginx安装成windows服务 常用命令 构建服务 静态服务 代理服务器 http配置文件转移 负载均衡 负载均衡配置 负载均衡方法 ...

  8. nginx keepalive 双机

    Nginx+keepalived双机热备(主从模式)   负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网 ...

  9. js 判断浏览器类型大全

    /**** * 目前识别范围 * Microsoft Internet Explorer IE浏览器 * --> TheWorld 世界之窗 * --> TT浏览器 * --> 36 ...

  10. springMVC的多文件的异步上传实现

    springMVC的MultipartFile与传统的ajax文件上传兼容性不好,采用如下的ajax方法,后台无法获取文件. $.ajax({ url: '/upload', type: 'POST' ...