导航:首页 > 编程语言 > 服务器控件嵌入js

服务器控件嵌入js

发布时间:2023-08-31 04:50:08

❶ 如何把js,css文件内嵌到自定义控件

在工程里选择js文件,选择属性,build Action 选择 embeded Resource(内嵌资源),这样就可以把js文件编译到dll里了
在使用的时候,在引用的位置加如下
[assembly: WebResource("RPEMS.WebControls.Calendar.js", "application/x-javascript")]
REEMS.WebControls 是程序的命名控件,Calendar.js是js文件名

然后再CreateChildControls函数里加上
Page.ClientScript.RegisterClientScriptResource(this.GetType(), "RPEMS.WebControls.Calendar.js");
这样就可以把这个js文件和aspx页面一样使用了。

同样的如果想把css文件放到dll也可以这样
Page.ClientScript.RegisterClientScriptBlock(GetType(), this.ClientID + "Padding", ","<link href=\"" + cssFileName + "\" rel=\"stylesheet\" type=\"text/css\">");
如果只需要简单的css也可以写成如下,在控件的如 TextBox txt = new TextBox();txt.cssClass="PaddingLeft";
Page.ClientScript.RegisterClientScriptBlock(GetType(), this.ClientID + "Padding", "<style type='text/css'>.paddingLeft{padding-left: 10px;}</style>");

❷ 关于服务器控件如何调用js方法

1、服务器控件必包含clientidmode="Static"
如<input type="button" runat="server" id="id1" clientidmode="Static" />
2、调用JS方法
$("#id").onclick({function(){.....}});

❸ 怎样用JS为服务器控件赋值

//1、JS脚本为服务器控件赋值
语法:document.getElementById('<%=服务器控件名.ClientID%>')
document.getElementById('<%=TextBox2.ClientID%>‘).value= “aaaaa” ;
<anthem:TextBox ID= "TextBox2" runat= "server" Text= "bbbbb" >< /anthem:TextBox> //这个是anthem的控件,跟asp.Net ajax框架的控件一样.
//2、JS脚本为服务器中用户控件中的控件赋值
语法:document.getElementById("<%=服务器控件名.ClientID%>"+"_用户控件中控件名")
document.getElementById( "<%=UserInfoControl1.ClientID%>"+"_txtBAname").value= “aaaaa” ;
页面使用的用户控件: <uc1:UserInfoControl ID= "UserInfoControl1" runat= "server" />
用户控件代码
<anthem:TextBox ID="txtBAname" runat="server" Width="64px" CssClass="lankuang" ></anthem:TextBox>

如果js为服务器控件Lable赋值的话,语法为:
document.getElementById("<%=CaseControl1.ClientID%>"+ "_lblZhusu").innerHTML= "aaaaaaa" ;
但是由于label映射到客户端是Div标签,所以后台取的还是原来的值

❹ JS 调用.NET中 服务端控件<asp:DropDownList>的OnSelectedIndexChanged方法

DropDownList加上来自OnSelectedIndexChanged方法,并加上AutoPostBack="true"后,会生成相应的js脚本,如:
<asp:DropDownList ID="dropdownlist1" runat="server" AutoPostBack="true"
onselectedindexchanged="dropdownlist1_SelectedIndexChanged">
得到的html代码是:
<select name="dropdownlist1" onchange="javascript:setTimeout('__doPostBack(\'dropdownlist1\',\'\')', 0)" id="dropdownlist1">

那么在你的其它代码里,只要调用相应的js代码就可以了,比如
<script type='text/javascript'>
function myevent(){
setTimeout('__doPostBack(\'dropdownlist1\',\'\')', 0);
}
</script>

❺ 如何封装JS和CSS文件为服务器端控件

首先:下载一个JS的日期组件,带封装。
然后:建一个日期类文件CalendarBox.cs代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

[assembly: WebResource("Wisesoft.Web.Control.Wisesoft.Calendar.calendar.js", "application/x-javascript", PerformSubstitution=true)]

namespace Wisesoft.Web.Control
{
[ToolboxBitmap(typeof(CalenderBox), "Wisesoft.Calendar.CalendarBox.ico")]
public class CalenderBox : TextBox
{
protected override void OnPreRender(EventArgs e)
{
string calendar = CalenderCSS.CSS;
calendar = calendar.Replace("$ImaginURL$", this.ImaginURL);
if (!Page.ClientScript.IsClientScriptBlockRegistered("_calendar"))
Page.ClientScript.RegisterClientScriptBlock(typeof(string), "_calendar", calendar);

this.Page.PreRenderComplete += new EventHandler(Page_PreRenderComplete);
this.CssClass = "Wdate";
this.Attributes.Add("onfocus","setday(this)");
this.Attributes.Add("onchange", "checkDate(this.value)");
base.OnPreRender(e);
}

void Page_PreRenderComplete(object sender, EventArgs e)
{
Page.ClientScript.RegisterClientScriptResource(this.GetType(), "Wisesoft.Web.Control.Wisesoft.Calendar.calendar.js");
}

/**//// <summary>
/// 弹出日期控件小图片的地址
/// </summary>
[Bindable(true)]
[Category("图标设置")]
[DefaultValue("imagin/calender.gif")]
[Localizable(true)]
public string ImaginURL
{
get
{
String s = (String)ViewState["ImaginURL"];
return ((s == null) ? "imagin/calender.gif" : s);
}
set
{
ViewState["ImaginURL"] = value;
}
}

/**//// <summary>
/// 设置日期,时间的初始格式。
/// </summary>
[Bindable(true)]
[Category("初始化设置")]
[DefaultValue(false)]
[Localizable(true)]
public bool ShowTime
{
get
{
bool s = (bool)ViewState["ShowTime"];
if (ViewState["ShowTime"] != null)
{
return s;
}
return false;
}
set
{
ViewState["ShowTime"] = value;
}
}

/**//// <summary>
/// 注样式文件
/// </summary>
/// <param name="path"></param>
private void RegisterCssFile(string path)
{
HtmlLink link1 = new HtmlLink();
link1.Attributes["type"] = "text/css";
link1.Attributes["rel"] = "stylesheet";
link1.Attributes["href"] = path;
this.Page.Header.Controls.Add(link1);
}
}
}
注意:[assembly: WebResource("Wisesoft.Web.Control.Wisesoft.Calendar.calendar.js", "application/x-javascript", PerformSubstitution=true)]是用来封装你的JS文件,要使用你项目的名字加上你JS文件的名字,还需要将你的JS文件做一点设置,点右件,选择属性--->然后选择高级,选择生成操作-->选择嵌入的资源,这样才能将JS文件封装进去,当然如果有图片或者是CSS文件也是一样的。
再看
void Page_PreRenderComplete(object sender, EventArgs e)
{
Page.ClientScript.RegisterClientScriptResource(this.GetType(), "Wisesoft.Web.Control.Wisesoft.Calendar.calendar.js");
}

是在页面呈现之前将你的JS文件注册到页面上。
[Bindable(true)]
[Category("图标设置")]
[DefaultValue("imagin/calender.gif")]
[Localizable(true)]
是利用反射的元数据信息,来设置属性。就是给你的日期控件旁边加上个小图标,把它做成一个属性,可以让程序员自定义设置图片,也可以把它继承进去。
好了,这样就可以把JS文件封装好了,再来看看CSS文件如何封装并写入客户端。
我们可以看见下面有一个方法,
/**//// <summary>
/// 注样式文件
/// </summary>
/// <param name="path"></param>
private void RegisterCssFile(string path)
{
HtmlLink link1 = new HtmlLink();
link1.Attributes["type"] = "text/css";
link1.Attributes["rel"] = "stylesheet";
link1.Attributes["href"] = path;
this.Page.Header.Controls.Add(link1);
}

它就是用来注册你的CSS文件的,大家都知道在我们的页面代码里面是<link href="StyleSheet.css" rel="stylesheet" type="text/css" />引入外部样式文件。这个方法就是达到这个目的。那么我们现在还没有样式文件。
因此我们就必须建立一个CSS,然后把它设置一下(和JS的设置方式一样)。再到void Page_PreRenderComplete(object sender, EventArgs e)方法调用就可以了,但是还有其他方法,我们来介绍第二种(对JS文件也可以这样使用),建立一个CalendarCSS.cs文件,代码如下:
using System;
using System.Collections.Generic;
using System.Text;

namespace Wisesoft.Web.Control
{
public class CalenderCSS
{
public static string CSS = @"<style type=""text/css"">
.Wdate{
border:#999 1px solid;
height:18px;
background:url($ImaginURL$) no-repeat right;
}
.WdateFmtErr{
font-weight:bold;
color:red;
}
</style>";
}
}

这个类其实是将我们的CSS文件,写为一个字符串形式,然后供主函数调用,以注册到客户端使用。
那么我们再看看CalendarBox.cs文件里的这段代码
string calendar = CalenderCSS.CSS;
calendar = calendar.Replace("$ImaginURL$", this.ImaginURL);
if (!Page.ClientScript.IsClientScriptBlockRegistered("_calendar"))
Page.ClientScript.RegisterClientScriptBlock(typeof(string), "_calendar", calendar);

它就是将我们已经写好的一段字符串以快的形式注册到客户端(当然还有更多的注册方式,可以在MSDN看看ClientScript类)。
好了,基本上就可以使用了。

❻ 服务器控件 调用 JS代码 的问题

学程序要敢于尝试,通常我们都会用JS来验证客户端控件,但总有人不去尝试JS去验证服务器控件,也说明你没有真正学好JS,C#转译,HTML的DOM模型,这些东西。假设你页面中现在有一个listbox名字叫listTypeInfo,就算它是一个服务器控件,通过执行后的HTML源代码,可以看到它的ID为listTypeInfo,现在用JS验证如果它没有被选中就点击删除按钮,先提示要选中,选中之后提示“是否确认”
让你的面面中的button的onclientclick事件中调用这段JS:

<script language="javascript" type="text/javascript">
function IsOK()
{
var a=0;
var listType=document.getElementById("listTypeInfo");

for( i = 0; i <listType.options.length; i++)
{
if(listType.options[i].selected)
{
a=1;

}
}
if(a==0)
{
alert("请选择要删除的选项");
return false;
}
if(a==1)
{
return confirm ("确认吗?");
}

}

</script>

这样就能按顺序执行你想要的效果了,当前后JS通过,就会执行你按钮的click事件中的后台的删 除代码。

阅读全文

与服务器控件嵌入js相关的资料

热点内容
vc修改文件名 浏览:149
linux65从域 浏览:321
用什么东西压缩文件 浏览:406
怎么删除ipad隐藏的APP 浏览:981
编程如何占用大量内存 浏览:116
多个excel表格文件如何组合 浏览:918
ubuntu内核升级命令 浏览:679
pgp文件夹 浏览:894
一键还原的文件是什么格式 浏览:581
女汉子微信名霸气十足 浏览:65
win10手机蓝屏修复 浏览:419
windows2008激活工具 浏览:259
g71的编程应注意什么 浏览:572
文件路径不符合是什么意思 浏览:543
qq如何换绑微信绑定 浏览:67
文件包下载的安装包在哪里 浏览:811
90版本升级不送 浏览:186
工具箱英文 浏览:382
南翔嘉定编程课哪里好 浏览:853
win10改变文件格式 浏览:475

友情链接