利用ascx输出knockoutjs的模板
项目里面的UI模板在一个页面中有2K多行了.需要增加新的UI样式.问题来了.加上js代码,几乎是变成了不可维护的状态.增加和修改都需要用ctrl+f的方式找到对应的模板,然后进行处理.很容易出错.突然想到了ascx,可以很方便的在apsx上面控制是否输出.那就用它来做吧.但是有一点不同的是,只有ascx文件,没有对应的.cs文件.对应的.cs文件是另外继承了usercontroll类的文件.不需要加入新的ascx还要编译.一个demo:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="~/wx/uibase/MyUserControll.cs" Inherits="WJWXWeb.wx.uibase.MyUserControll" %>
<script type="text/template" id="editormap-template">
<div class="closeModel" data-bind="click: $root.closeMe">
<span class="myicon">×</span>
</div>
<div>
<div id="modalcontent">
<div class="content" style="background-color: #f5f5f5;">
<div class="orderheader">
<div class="ui-grid">
<div class="ui-block-a">
<img src="../images/landmark.png" />
</div>
<div class="ui-block-b" style="height: 34px; line-height: 34px;">
<span data-bind="text: $root.orderinfo.mapaddress">hello word</span>
</div>
</div>
</div>
<div style="padding: 10px; background-color: #fff;">
<table style="width: 100%;">
<tr style="height: 55px; border-bottom: 1px solid #f2f2f2;">
<td style="width: 60px">详细地址</td>
<td>
<input type="text" data-bind="textInput: address" placeholder="A栋27楼207室" style="margin: 2px; height: 100%; width: 100%; margin: 0; border: none;" /></td>
<td style="color: red;">*</td>
</tr>
<tr style="height: 55px; border-bottom: 1px solid #f2f2f2;">
<td style="width: 60px">联系电话</td>
<td>
<input type="text" data-bind="textInput: ordertel" style="margin: 2px; height: 100%; width: 100%; margin: 0; border: none;" /></td>
<td style="color: red;">*</td>
</tr>
<tr style="display: none;">
<td>联系人</td>
<td>
<input type="text" data-bind="textInput: orderman" style="margin: 2px; height: 100%; width: 100%" /></td>
<td style="color: red;">*</td>
</tr>
</table>
</div>
</div>
<div class="bar bar-standard bar-footer mybar">
<a class="pull-right canpay" style="width: 100%;" data-bind="click: SaveAddress">确定</a>
</div>
</div>
</div>
</script>
</script>
aspx页面的代码.
<%@ Register TagPrefix="uiv1" TagName="editormap" Src="~/wx/uiv1/editormap.ascx" %>
输出
<uiv1:editormap runat="server" />
打完收猫.
页面上面有太多的uiv1:editormap和<%@ Register,要是能在cs文件中,动态加载?
{
/// <summary>
/// 加载数据
/// </summary>
/// <param name="datasource"></param>
/// <param name="datafilter"></param>
public virtual void ondatainit(object datasource, string datafilter)
{
}
{
var controltemplate = LoadControl("~/webparts/contacts.ascx") as webpart;
controltemplate.ondatainit(null, Request["id"]??"");
MyLog.Log(RenderControlAsString(controltemplate));
MyLog.Log(RenderControlAsString(LoadControl("~/webparts/footer.ascx")));
}
{
StringWriter sw = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(sw);
ctl.RenderControl(writer);
string str = sw.ToString();
writer.Close();
sw.Close();
return str;
}
{
StringWriter sw = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(sw);
ctl.RenderControl(writer);
string str = sw.ToString();
writer.Close();
sw.Close();
return str;
}
利用ascx输出knockoutjs的模板的更多相关文章
- JSP利用freemarker生成基于word模板的word文档
利用freemarker生成基于word模板的word文档 freemarker简介 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器 ...
- 如何利用NLog输出结构化日志,并在Kibana优雅分析日志?
上文我们演示了使用NLog向ElasticSearch写日志的基本过程(输出的是普通文本日志),今天我们来看下如何向ES输出结构化日志.并利用Kibana中分析日志. NLog输出结构化日志 Elas ...
- 利用中转输出表制作HijackDll
[原创]利用中转输出表制作HijackDll(附工具源码)作 者: baixinye时 间: 2012-08-05,16:48:45链 接: http://bbs.pediy.com/showthre ...
- 【转】ASP.NET MVC框架下使用MVVM模式-KnockOutJS+JQ模板例子
KnockOutJS学习系列----(一) 好几个月没去写博客了,最近也是因为项目紧张,不过这个不是借口,J. 很多时候可能是因为事情一多,然后没法静下来心来去写点东西,学点东西. 也很抱歉,突然看到 ...
- python利用递归函数输出嵌套列表的每个元素
1.先用 for 循环取. for item in l: if isinstance(item ,list): for newitem in item: print(newitem) else: pr ...
- Node.js系列文章:利用console输出日志文件
通常我们在写Node.js程序时,都习惯使用console.log打印日志信息,但这也仅限于控制台输出,有时候我们需要将信息输出到日志文件中,实际上利用console也可以达到这个目的的,今天就来简单 ...
- 51Nod-1006【LCS】+【输出路径】模板题
题目链接:https://vjudge.net/contest/225715#problem/B 转载于>>> 题目大意: 给出两个序列,要求输出它们的最长公共子序列. 解题思路: ...
- webpack配置路径及hash版本号,利用html-webpack-plugin自动生成html模板
在项目中,因为需要经常更新文件,但是浏览器缓存问题导致js文件不是最新的,所有想办法添加hash值. 并配置webpack打包文件配置路径: 配置webpack打包文件路径,及非入口 chunk文件: ...
- WPF 之 利用Visibility属性进行Item模板切换
前台Xaml如下: <Grid.Resources> <xx:AccountStatusToVisibility x:Key="AccountStatusToVisibil ...
随机推荐
- httpclient4.3访问https
1.创建一个访问https的工具类 package org.aaa.tool;import java.io.File; import java.io.IOException; import java. ...
- Jackson错误:Can not deserialize instance of java.lang.String out of START_OBJECT token
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not des ...
- VS2017序列号|Visual Studio 2017 激活码 序列号
企业版:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF 专业版:KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
- 学习Microsoft SQL Server 2008技术内幕:T-SQL语法基础
第 2 章: 单表查询 use TSQLFundamentals2008; select * from Sales.orders; select empid, year(orderdate) as o ...
- Android修改状态栏颜色全方位教程
关键字:状态栏着色 透明状态栏 沉浸式 白底黑字 Github Demo:https://github.com/imflyn/Eyes 参考文章: Android-transulcent-status ...
- PHP微信墙制作
微信墙 PHP 注意:由于微信官网不定时会更新,其中模拟登陆以及爬取数据的方式可能会失效,最近这12个月里,就有两次更新导致此功能需要重写. 服务端源码->github地址传送门 思路 其实实现 ...
- storm安装配置
1.修改主机名: vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=MASTER 2.修改IP: 先用ifconfig得到ip信息,将其复制 设置i ...
- nmap小技巧[1] 探测大网络空间中的存活主机
url: nmap是所有安全爱好者应该熟练掌握的扫描工具,本篇介绍其在扫描大网络空间时的用法. 为什么要扫描大网络空间呢? 有这样的情形: 内网渗透 攻击者单点突破,进入内网后,需进一步扩大成果, ...
- python3自己主动爬笑话
学校的server能够上外网了,所以打算写一个自己主动爬取笑话并发到bbs的东西,从网上搜了一个笑话站点,感觉大部分还不太冷.html结构例如以下: watermark/2/text/aHR0cDov ...
- lodash 提取前N个元素 take
_.take(array, [n=1]) 从数组的起始元素开始提取 N 个元素. <!DOCTYPE html> <html lang="zh"> < ...