posts - 28, comments - 6, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

最新评论

@nimrod
hi,你好!sorry,我对MYSQL不熟。
老大,没用啊。加了那个是不报错了,可就变成全页面刷新了,那跟不用AJAX有什么区别呢 ?
我用SQL SERVER 2000 连接MYSQL 进行取数据,但是,由于MYSQL里面的中文编码为UTF8,而SQL SERVER里面的编码为GBK的,

因此,查询出来的中文都是乱码,请问这个需要怎么解决。? 非常感谢.

查询语句:
select * from OPENQUERY(dw_db_test,'select * from my_table')
Page.Response.Write("<script>var response;</script>");

Page.RegisterStartupScript("RegisterStartupScript","<script>var RegisterStartupScript;</script>");

Page.RegisterClientScriptBlock("RegisterClientScriptBlock","<script>var RegisterClientScriptBlock;</script>");

Response.Write输出后的位置在源文件的第一行.

RegisterClientScriptBlock输出后的位置会在<form>的下一行.(在asp.net自带的脚本和一些隐藏域之下).

RegisterStartupScript输出后的位置会在</form>的上一行.

RegisterClientScriptBlock的原型与RegisterStartupScript相同,两个函数不同在于将其包含的脚本代码写入到HTML文件的不同位置.RegisterClientScriptBlock在 Page 对象的 元素的开始标记后立即发出客户端脚本,RegisterStartupScript则是在Page 对象的 元素的结束标记之前发出该脚本。如果你的脚本有与页面对象(doucument对象)进行交互的语句,则推荐使用RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行,则可以使用RegisterClientScriptBlock或Response.Write。

RegisterClientScriptBlock一般返回的是客户端函数的包装,而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onload="f()"里面的函数;这两个方法在客户端呈现的代码位置不同,RegisterClientScriptBlock在<form runat=server>之后,而RegisterStartupScript在</form>之前。

补充例子:
....
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="WebForm6.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDw3MzU1MTQ5MzY7Oz6nugrEg+5T6RC7MTIuLoIrMLQLPw==" />
<script>function block(){}</script> ------------>RegisterClientScriptBlock()方法输出的在这里


<input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; LEFT: 296px; POSITION: absolute; TOP: 120px" />

<script>function startup(){}</script> ------------>RegisterStartupScript()方法输出的在这里

</form>
</body>
</HTML>
最后发现真凶手是这一段代码:
if (Request.Browser.Browser.ToUpper() == "IE" && Request.Browser.Version == "6.0")
{
string strStyle = string.Format(IE6CSS,
this.DivFloat.ClientID, this.DivFloat.ClientID, this.DivFloat.ClientID);
Page.ClientScript.RegisterStartupScript(this.GetType(), this.DivFloat.ClientID, strStyle.Replace("[", "{").Replace("]", "}"));
this.DivFloat.Attributes.Add("style", string.Format(STYLEIE6, ZIndex));
}

const string IE6CSS = "<style type=\"text/css\">\n"
+ "*[margin:0;padding:0;margin-right:30]\n"
+ "#{0}[position:fixed;top:5em;right:100;]\n"
//+ "html[overflow:auto;]\n"
//+ "body[overflow:auto]\n"
+ "#{1}[position:absolute;right:17px;]\n"
+ "#{2}[position:absolute;top:expression(eval(document.body.scrollTop + 50));]\n"
+ "</style>";
==================================================
解决办法:
把这个函数 Page.ClientScript.RegisterStartupScript(this.GetType(), this.DivFloat.ClientID, strStyle.Replace("[", "{").Replace("]", "}"));
改为:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), this.DivFloat.ClientID, strStyle.Replace("[", "{").Replace("]", "}"));


没有