开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件。(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网上发表相关内容的朋友们。)
ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。这里控件容器就是浏览器,用户不需要通过浏览器调用控件的属性或方法。因此,开发面向Web的ActiveX控件比开发桌面的控件还要简单些,所复杂的是如何将该控件很好地嵌入主页,使用户能正常浏览。下面介绍这个问题。 阅读全文…
ASP.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力。当用户试图用之类的输入影响页面返回结果的时候,ASP.Net的引擎会引发一 个 HttpRequestValidationExceptioin。默认情况下会返回如下文字的页面:
以下是引用片段:
Server Error in ‘/YourApplicationPath’ Application
A potentially dangerous Request.Form value was detected from the client
(txtName=”<b>”). 阅读全文…
解决方法:
方法很简单,就是直接在触发器内关闭触发器的影响行数。使用如下语句:
set nocount on——-关闭影响行数
set nocount off——-打开影响行数
这段时间,老大在看了网站后,发现viewstate所产生的一堆乱码,严重影响了我们网站http://www.xbcar.net 西部汽车网的打开速度和搜索引擎的抓取.就给我下了道铁令,三天内必须解决.这下该轮到我头大了,
例如:
input type=”hidden” name=”__VIEWSTATE” id=”__VIEWSTATE” value=”dEV4cHJlc3Npb247UmVhZE9ubHk7PjtsPHB1Yl9uYW1lO3B1Yl9uYW1lO3B1Yl9uYW1 lO288Zj47Pj47Ozs7PjtAMDxw” />
我立马翻遍了所有的资料,及查遍了百度和Google。以求得到最佳解决方案。但都没有一个完整的解决方案。都写的比较零碎。但黄天不负有心人,最终还是让我找到了几种方案,并加以修改,改进。在此我要感谢这几个方案的提供者。谢谢他们的分享,在解决完我自己的问题后,有感于前几位的分享,故我也不敢独自分享,现在总结七种解决方案如下,以供大家分享,有不对的地方欢迎拍砖。现把ViewState的优化方法总结如下:
第一种解决方案(最快的一种,但是以牺牲asp.net方便性为代价的)西部汽车网
禁用viewstate。可在web.config里配置,或者页面@Page指令里加入 Enableviewstate=”false” ,即可防止上面的乱码了。然后页面传值使用form或者cookies,别用session和application他们都是服务器杀手,但这种方式灵活度不高,而且微软自带的控件无法使用了,不如用 阅读全文…
vs2010 C++编译程序生成的EXE文件执行提示缺少:msvcp100d.dll,msvcr100d.dll等文件.
解决方法:
打开生成->配置管理器,将debug改成release。
然后在项目->项目属性->配置属性->常规中>MFC的使用,将使用windows程序库 改成 在静态库中使用MFC。
重新生成就可以了。
PHP获取mysql自增后的使用mysql_insert_id()函数.
$result="INSERT INTO user VALUES (null,1,2,3)";
mysql_query($result);
echo mysql_insert_id();
PHP 使用soap也是很方便的,直接看代码.
PHP 普通版:
webserviceServer服务端(soaps.php):
<?php
$soap = new SoapServer(null,array('uri'=>"http://localhost/"));
$soap->addFunction('minus_func');
$soap->addFunction(SOAP_FUNCTIONS_ALL);
$soap->handle();
function minus_func($i, $j){
$res = $i - $j;
return $res;
}
?>
webserviceClient客户端调用:
<?php
try {
$client = new SoapClient(null, array('location' =>"http://localhost/soaps.php",'uri' => "http://localhost/") );
echo $client->minus_func(100,9);
} catch (SoapFault $fault){
echo "dxbError: ",$fault->faultcode,", string: ",$fault->faultstring;
}
?> 阅读全文...
ASP.NET中页面传值
一、目前在ASP.NET中页面传值共有这么几种方式:
1、表单提交,
<form action= "target.aspx" method = "post" name = "form1">
<input name = "param1" value = "1111"/>
<input name = "param2" value = "2222"/>
</form>
....
form1.submit();
....
此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。
2、<A href="target.aspx?param1=1111¶m2=2222">链接地址传送</A>
接收页面: string str = Request["param1"]
3、Session共享
发送页面:Session("param1") = "1111";
按收页面 string str = Session("param1").ToString();
4、Application共享
发送页面: Application("param1") = "1111";
按收页面: string str = Application("param1").ToString();
此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。
5、Cookie
6、Response.Redirect()方式
Response.Redirect("target.aspx?param1=1111¶m2=2222")
接收页面: string str = Request["param1"]
7、Server.Transfer()方式。
Server.Transfer("target.aspx?param1=1111¶m2=2222")
接收页面: string str = Request["param1"]
8、我们建立一个CrossPageSubmitTest.aspx页面,在任意页面建立一个按钮提交到 CrossPageSubmitTest.aspx。
<asp:ButtonID="btn_CrossPageSubmit" runat="server"OnClick="btn_CrossPageSubmit_
Click"PostBackUrl="CrossPageSubmitTest.aspx" Text="跨页面提交" />
然后在CrossPageSubmitTest.aspx的Page_Load中加入以下代码就能输出前一个页面上btn_CrossPageSubmit按钮的Text属性。
Response.Write((PreviousPage.FindControl("btn_CrossPageSubmit")as Button).Text);
二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 - 6的方法传值及其不便,而第 7 种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:
以查询数据页面为例:
在查询页面中设置如下公有属性(QueryPage.aspx):
public class QueryPage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtStaDate;
protected System.Web.UI.WebControls.TextBox txtEndDate;
...
/// <summary>
/// 开始时间
/// </summary>
public string StaDate
{
get{ return this.txtStaDate.Text;}
set{this.txtStaDate.Text = value;}
}
/// <summary>
/// 结束时间
/// </summary>
public string EndDate
{
get{ return this.txtEndDate.Text;}
set{this.txtEndDate.Text = value;}
}
....
private void btnEnter_Click(object sender, System.EventArgs e)
{
Server.Transfer(“ResultPage.aspx”);
}
} 在显示查询结果页面(ResultPage.aspx):
public class ResultPage : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
//转换一下即可获得前一页面中输入的数据
QueryPage queryPage = ( QueryPage )Context.Handler;
Response.Write( “StaDate:” );
Response.Write( queryPage.StaDate );
Response.Write( “<br/>EndDate:” );
Response.Write( queryPage.EndDate );
}
}
有时候只需要执行一次的js代码:
<!DOCTYPE html>
<html>
<head>
<style>
div { width:60px; height:60px; margin:5px; float:left;
background:green; border:10px outset;
cursor:pointer; }
p { color:red; margin:0; clear:left; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<p>Click a green square...</p>
<script>
var n = 0;
$("div").one("click", function() {
var index = $("div").index(this);
$(this).css({
borderStyle:"inset",
cursor:"auto"
});
$("p").text("Div at index #" + index + " clicked." +
" That's " + ++n + " total clicks.");
});
</script>
</body>
</html>
纯JS代码:
var obj = new Object();
obj.triggerOnce = function(fn) { //控制让函数只触发一次
return function() {
try {
fn.apply(this, arguments);
}
catch (e) {
var txt = "There was an error on this page.nn";
txt += "Error message: " + e.message + "nn";
txt += "Error name: " + e.name + "nn";
//alert(txt);//正式平台上可能需要注释掉该行
}
finally {
fn = null;
}
}
}
调用形式:
代码如下:
function showMsg(arg){
alert(arg);
}
var fn=obj.triggerOnce(showMsg);
fn(1);//只执行一次
fn(2);//没有调用fn
代码:
function add(a, b) {
alert(a-b);//不报错
alert(eval(a.toString() +"-"+ b.toString()));//报错 里面字符串不能计算
}
add(11, -22)
谁知道这是神马原因?
有非常多关于CSS Hack的教学文章,当然处理方法也有很多种,接下来要跟大家说明的是属于比较简单的方法,但是以下的校正确无法通过W3C检测,虽然无法通过检测,但是针对各个浏览器校正确是有效的。
区别IE和Firefox
【辨识符号】:「9」
【范例练习】:
#tip {
background:blue; /*Firefox 背景变蓝色*/
background:red 9; /*IE6、IE7、IE8背景变红色*/
}
阅读全文…
新建Default.aspx页面
前台代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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 id="Head1" runat="server">
<title>无标题页</title>
<script type="text/javascript">
//向服务器传递参数
function DoSearch() {
var firstName = document.getElementById("TextBox1").value;
CallServer(firstName, "");
}
//得到服务器的数据
function ReceiveServerData(txtUserInfo) {
Results.innerHTML = txtUserInfo;
}
//设置每1秒执行一次
// setInterval("DoSearch()", 1000);
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
姓名:<asp:TextBox regname="123" onblur="DoSearch()" ID="TextBox1" runat="server"></asp:TextBox>
<br />
<span id="Results" style="background-color: Pink; width: 500px;"></span>
</div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
</body>
</html>
阅读全文…
代码如下:
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
Sheet sheet = hssfworkbook.CreateSheet("new sheet");
Cell cellTitle = sheet.CreateRow(0).CreateCell(0);//创建单元格
cellTitle.Row.Height = 550;//行高
cellTitle.SetCellValue(name);//单元格值
sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 12));//合并标题行 阅读全文...
调用COM组件代码如下:
Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
_Workbook wk = Excel.Workbooks.Add(true);
_Worksheet ws = (_Worksheet)wk.ActiveSheet;
ws.get_Range(Excel.Cells[1, 1], Excel.Cells[1, 13]).MergeCells = true;//合并单元格
ws.get_Range(Excel.Cells[1, 1], Excel.Cells[1, 12]).Borders.LineStyle = 1;//加边框
ws.get_Range(Excel.Cells[1, 1], Excel.Cells[1, 12]).Borders.ColorIndex = "3";//边框颜色
ws.get_Range(Excel.Cells[1, 1], Excel.Cells[1, 13]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置居中对齐
ws.get_Range(Excel.Cells[1, 1], Excel.Cells[1, 13]).Font.Size = 18;//设置字体
ws.get_Range(Excel.Cells[1, 1], Excel.Cells[1, 13]).Font.Color = System.Drawing.Color.White;//字体颜色
ws.get_Range(Excel.Cells[1, 1], Excel.Cells[1, 13]).Interior.ColorIndex = "49";
ws.Cells[1, 1] = "ASP.NET导出Excel下载"; 阅读全文...