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


    想实现如下功能


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

     

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

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

    开发过程

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

    function opennewwindow()
     

    var returnvalue=window.showModalDialog("query.aspx"); 
    if (returnvalue) 
    { Form1.HidId.value=returnvalue.split("$")[0];
     Form1.HidName.value
    =returnvalue.split("$")[1]; Form1.HidAuthor.value=returnvalue.split("$")[2]; 
    Form1.HidSort.value
    =returnvalue.split("$")[3]; 
    Form1.HidPublish.value
    =returnvalue.split("$")[4];
    }

    }


       

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

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

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

    <script>
    function test()
    {
        
    if (真的话)
            document.all[
    "btn_test"].click();
    }

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

     

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

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

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

    至此问题解决。

  • 相关阅读:
    Java修饰符
    java中接口的定义
    抽象类
    final关键字的特点
    hdu6489 2018 黑龙江省大学生程序设计竞赛j题
    POJ 3268 (dijkstra变形)
    poj 2253 floyd最短路
    poj1681 Network
    bzoj1202 狡猾的商人
    Nastya Is Buying Lunch
  • 原文地址:https://www.cnblogs.com/shf/p/306694.html
Copyright © 2020-2023  润新知