利用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 ...
随机推荐
- MyBasic架构
MyBasic架构图 2,架构图解析 (1) (2) (3)
- RxJava 1.x 理解-1
先看下别人实现的最基本的RxJava的实现方式: 在RxJava里面,有两个必不可少的角色:Subscriber(观察者) 和 Observable(订阅源). Subscriber(观察者) Sub ...
- js splice()方法
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 注释:该方法会改变原始数组. 实例 例子 1 在本例中,我们将创建一个新数组,并向其添加一个元素: <script ty ...
- Kubernetes master节点的高可用配置
了解Kubernetes架构都知道Master节点在整个集群中的位置,为了保证整个架构的高可用,Kubernetes提供了HA的架构,处于兴趣和对架构的进一步了解,我在自己的电脑实践以下. 环境: C ...
- 怎样编写高效android代码
基于Android相关设备作为嵌入式设备范畴,在书写App应用的时候要格外关注效率.而且受电池电量的限制.这就导致嵌入式设备有诸多考虑.有限处理能力.因此就要求我们尽量去写高效的代码. 本文讨论了非常 ...
- extjs4权限管理,actioncolumn列显示隐藏或禁用
//隐藏getClass: function(v, meta, rec) { if ( someCondition ) { return 'x-hidden' } }//加入其他样式getClass: ...
- sqls
ALTER TABLE `shh_data`.`topic_floor` ADD COLUMN `updated_date` DATETIME NULL AFTER `publish_date`,AD ...
- [Flutter] Creating & Updating State in a Flutter Application
To create a Stateful widget: 1. Create a StatefulWidget 2. Create a State class SGreeting extends St ...
- 云计算之路-阿里云上-十字路口:阿里云SLB故障
2013年7月24日,18:20~18:50左右,处于阿里云云服务最前沿的SLB(负载均衡)出现故障,造成了网站不能正常访问(由于是最前沿,这次连502也看不到了). 在大家对昨日RDS故障带来的麻烦 ...
- python 利用numpy进行数据分析
一.numpy.loadtxt读取数据 data=numpy.loadtxt('数据路径.txt',delimiter=',',usecols=(0,1,2,3) , dtype=float)#读取后 ...