客户段调用服务器端解决。

博客讲述了在输入查询条件后,实现上一页自动返回查询条数功能时,在.NET开发中遇到的问题及解决办法。开发过程中遇到客户端代码调用服务器端代码、控件设置、提交结果不正确等问题,最终通过使用Form1.submit()和去掉Page_Load中的if (!Page.IsPostBack)解决问题。
想实现如下功能

a.jpg
一打开将所有记录列出,然后点查询
b.jpg
 

输入查询条件后,上一页自动返回查询的条数。

此功能在asp中实现很好实现。但在..net中开发还是第一次。

开发过程

1、  首先我按asp中的写法,主页上接受新页返回得值,具体函数

None.giffunction opennewwindow()
ExpandedBlockStart.gifContractedBlock.gif 
dot.gif
InBlock.gif
var returnvalue=window.showModalDialog("query.aspx"); 
InBlock.gif
if (returnvalue) 
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{ Form1.HidId.value=returnvalue.split("$")[0];
InBlock.gif Form1.HidName.value
=returnvalue.split("$")[1]; Form1.HidAuthor.value=returnvalue.split("$")[2]; 
InBlock.gifForm1.HidSort.value
=returnvalue.split("$")[3]; 
InBlock.gifForm1.HidPublish.value
=returnvalue.split("$")[4];
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif

   

却发现虽然返回了值,但是代码页的sql语句却没有执行。也就是说代码页没有执行。这与asp的过程执行是不一样。

1、  此时我明白必须要在此客户段的javascript函数中执行一下服务器端的代码文件(.cs文件),如何执行呢?这里就涉及到客户段代码如何调用服务器端代码的问题了?上网查资料,有这样的写法:

却发现虽然返回了值,但是代码页的sql语句却没有执行。也就是说代码页没有执行。这与asp的过程执行是不一样。

None.gif<script>
None.gif
function test()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
if (真的话)
InBlock.gif        document.all[
"btn_test"].click();
ExpandedBlockEnd.gif}

None.gif
</script>
None.gif
<input type="button" onclick="test();">
None.gif
<asp:button id="btn_test" runat="server"></asp:button>
None.gif

 

这样客户段当附值完毕之后就能执行服务器端控件的click事件了,所以可以拖上一个button 或者别的控件,然后对他触发一个时间就可以了,可是如果让他在界面上直接显示不美观,所以把他的visible设为false,运行,却发现不行了,因为如果把一个控件的visble设置为false的话,他到了客户段却没有了。所以如果拖显示控件是不行的,那托上一个hidden ,发现hidden不好用。

这个时候想到了Form1.submit();,用它提交一下不就行了吗。

这些应该可以了,运行。返回值好像提交了,但是没有出现正确的结果,这是为什么呢?奥。看一下Page_Load 发现加上了if (!Page.IsPostBack),对问题就在这里。不应该加这个。因为每次提交一次,都要重新加载一次,所以去掉就ok了。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

至此问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值