webform按钮禁用diasble_webform单选按钮 - CSDN
精华内容
参与话题
  • WebForm基础

    千次阅读 2018-06-09 09:33:51
    1、WebForm的优点和缺点在一个空的web项目中添加一web窗体,他的用法和winform差不多。都是拖控件下面用一个求和的例子演示1.1先在页面上拖2个文本框一个按钮点击按钮实现求和代码 protected void Button1_Click...

               WebForm中并不是所有控件都是常用的,初学者的目的是用最短的时间学最有用的内容。工具箱中“标准”中常用的控件如下:LabelButtonLinkButtonImageButtonHyperLinkDropDownListListBoxCheckBoxRadioButtonLiteralFileUpload。很多书上讲WebForm的时候讲把大量的篇幅放到GridViewDataListDetailsViewRepeaterListView等这些数据绑定控件上,其实这些控件大同小异,只要掌握了一个控件另外一个控件很容易掌握,推荐大家学习ListViewRepeater就够了。        

    1、WebForm的优点和缺点

    在一个空的web项目中添加一web窗体,他的用法和winform差不多。都是拖控件

    下面用一个求和的例子演示

    1.1先在页面上拖2个文本框一个按钮


    点击按钮实现求和代码

            protected void Button1_Click(object sender, EventArgs e)
            {
                int i = Convert.ToInt32(TextBox1.Text);//就像winform一样直接获取控件的的值
                int j = Convert.ToInt32(TextBox2.Text);
                Label1.Text = Convert.ToString(i + j);

            }

    实现效果


    ——————————————————————————————

    通过上面的例子我们知道什么是webform

    拖几个控件,双击一下,写几行代码。这种技术我们叫WebForm

    优点:简单——拖下控件设置下属性,写个单击事件就完成了一个功能。为习惯于winform开发的程序员过度到webform傻瓜化的开发方式。

    这种技术只适合开发简单,对什么要求都不高的系统,对安全性、性能、可扩展性等要求不高,或者没有。

    但是只要有一点要求,这种webform开发的方式就不行了

    webform并没有很好的考虑到怎么进行大项目的开发。

    webform逐渐用的人少了,更多是用ASP.MVC

    webform刚开始学很心动,用后就很心痛。

    ASP.NET最佳设计模式:把aspx当做模板引擎,轻量的使用Webform

    控件。

    展开全文
  • ASP.NET页面间传值的几种方式

    万次阅读 热门讨论 2009-05-12 15:46:00
    1。使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常...使用这种方法的步骤如下:1,使用控件创建web表单(form)2,创建可以返回表单的按钮和链接按钮3,在按

    1。使用QueryString
          使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象,但是在传递的值少而安全性要求不高的情况下,这个方法还是一个不错的方案。使用这种方法的步骤如下:
    1,使用控件创建web表单(form)
    2,创建可以返回表单的按钮和链接按钮
    3,在按钮或链接按钮的单击事件里创建一个保存URL的字符变量
    4,在保存的URL里添加QueryString参数
    5,使用Response.Redirect重定向到上面保存的URL
    下面的代码片断演示了如何实现这个方法:
      源页面WebForm1.aspx.cs中的部分代码:
    private void Button1_Click(object sender, System.EventArgs e)
    {
         string url;
         url="WebForm2.aspx?name=" + TextBox1.Text + "&email=" + TextBox2.Text;
         Response.Redirect(url);
    }
     目标页面WebForm2.aspx.cs中的部分代码:
    private void Page_Load(object sender, System.EventArgs e)
    {
         Label1.Text=Request.QueryString["name"];
         Label2.Text=Request.QueryString["email"];
    }


    2。使用Session变量
          使用Session变量是可以在页面间传递值的的另一种方式,在本例中我们把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,在使用session时应该慎重,当然了,我们也应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗。使用Session变量传递值的一般步骤如下:
    1,在页面里添加必要的控件
    2,创建可以返回表单的按钮和链接按钮
    3,在按钮或链接按钮的单击事件里,把控件的值添加到session变量里
    4,使用Response.Redirect(或Server.Transfer)方法重定向到另一个页面
    5,在另一个页面提取session的值,在确定不需要使用该session时,要显式清除它
    下面的代码片断演示了如何实现这个方法:
       源页面WebForm1.aspx.cs中的部分代码:
    private void Button1_Click(object sender, System.EventArgs e)
    {
         //textbox1 and textbox2 are webform
         //controls
         Session["name"]=TextBox1.Text;
         Session["email"]=TextBox2.Text;
         Server.Transfer("WebForm2.aspx");
    }
      目标页面WebForm2.aspx.cs中的部分代码:
    private void Page_Load(object sender, System.EventArgs e)
    {
         Label1.Text=Session["name"].ToString();
         Label2.Text=Session["email"].ToString();
         Session.Remove("name");
         Session.Remove("email");
    }

    3.使用Server.Transfer
          这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:
    1,在页面里添加必要的控件
    2,创建返回值的Get属性过程
    3,创建可以返回表单的按钮和链接按钮
    4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面
    5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了
    以下代码综合实现上述步骤过程的代码:
      源页面WebForm1.aspx.cs中的部分代码:
        把以下的代码添加到页面中
    public string Name
    {
         get
         {
             return TextBox1.Text;
         }
    }

    public string EMail
    {
         get
         {
             return TextBox2.Text;
         }
    }
      然后调用Server.Transfer方法
    private void Button1_Click(object sender, System.EventArgs e)
    {
         Server.Transfer("WebForm2.aspx");
    }
       目标页面代码:

    在WebForm2.aspx中务必在第一句话添加

    <%@ Reference Page="~/WebForm1.aspx" %>

    <%@ PreviousPageType VirtualPath="~/WebForm1.aspx" %>

    然后在WebForm2.aspx.cs中添加如下。


    private void Page_Load(object sender, System.EventArgs e)
    {
         //create instance of source web form
         WebForm1 wf1;
         //get reference to current handler instance
         wf1=(WebForm1)Context.Handler;
         Label1.Text=wf1.Name;
         Label2.Text=wf1.EMail;
    }

    如果在调试的过程中遇到错误.就到C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files中把新建的网站名的文件夹删掉.(要先关掉Visual Studio开发环境再删)

    4.使用@PreviousPageType指令

          这个指令是.net 2.0中的一个新指令,用于处理ASP.NET 2.0提供的跨页面传送新功能.用于批定跨页面的传送过程起始于哪个页面.包含两个属性:

    TypeName:设置回送时的派生类名

    VirtualPath:设置回送时所传送页面的地址.

    如下示例:

     

    源页面WebForm1.aspx中有一个TextBox,ID为txtName.在WebForm1.aspx.cs中设置一个属性:

    public TextBox Name

    {

        get{return this.txtName;}//返回一个控件对象

    }

     

    在目标页面的设计文件中(WebForm2.aspx)的最上方加上:

     <%@ PreviousPageType VirtualPath="~/Page1.aspx"%>,

    然后就能引用WebForm1.aspx中定义的属性了.

    在WebForm2.aspx.cs中可以有如下引用形式(假设WebForm2.aspx中有一个ID为lblName的Label):

     

    lblName.Text="Hello"+PreviousPage.Name.Text+"<br />";

     5.利用某些控件的PostBackUrl属性

    示例:仍然是源页面WebForm1.aspx和目标页面WebForm2.aspx.

    WebForm1.aspx中的部分代码:

    <asp:Button ID="btnPostBack" Runat="server" Text="PBButton"></asp:Button>

    <asp:TextBox ID="txtName" Runat="server" ></asp:TextBox>

    <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>

     

    WebForm2.aspx.cs中的部分代码:

    protected void Page_Load(object Sender,System.EventArgs e)

    {

        TextBox txtName;

        Calendar calendar1;

     

        txtName=(TextBox)PreviousPage.FindControl("txtName");

        calendar1=(Calendar)PreviousPage.FindControl("Calendar1");

        Label.Text="Hello,"+txtName.Text+calendar1.SelectedDate.ToShortDateString();

    }

     

    使用这种方法存在一个问题:如果在没有单击那个按钮之前,也就是未处理WebForm1.aspx之前,有人请求了WebForm2.aspx,该怎么办?这就需要在WebForm2.aspx中的代码处理之前加一个判断.使用IsCrossPagePostBack属性,这与IsPostBack属性很相似,它允许检查请求是否来自WebForm1.aspx.如下:

    protected void Page_Load(object Sender,System.EventArgs e)

    {

        if(PreviousPage.IsCrossPagePostBack)

        {

            TextBox txtName;

            Calendar calendar1;

     

            txtName=(TextBox)PreviousPage.FindControl("txtName");

            calendar1=(Calendar)PreviousPage.FindControl("Calendar1");

            Label.Text="Hello,"+txtName.Text+calendar1.SelectedDate.ToShortDateString();

        }

        else

        {

            Response.Redirect("WebForm1.aspx");

        }

    }

    6.  使用Cookie对象变量
      这个也是大家常使用的方法,与Session一样,是对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。

    a.aspx的C#代码
    private void Button1_Click(object sender, System.EventArgs e)
    {
        HttpCookie cookie_name = new HttpCookie("name");
        cookie_name.Value = Label1.Text;
        Reponse.AppendCookie(cookie_name);
        Server.Transfer("b.aspx");
    }

    b.aspx中C#代码
    private void Page_Load(object sender, EventArgs e)
    {
        string name;
        name = Request.Cookie["name"].Value.ToString();
    }

    7.  使用Application 对象变量
      Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。
    a.aspx的C#代码
    private void Button1_Click(object sender, System.EventArgs e)
    {
        Application["name"] = Label1.Text;
        Server.Transfer("b.aspx");
    }

    b.aspx中C#代码
    private void Page_Load(object sender, EventArgs e)
    {
        string name;
        Application.Lock();
        name = Application["name"].ToString();
        Application.UnLock();
    }

    展开全文
  • C# WebForm

    千次阅读 2014-03-04 13:59:19
    什么是WebForm常用控件。 WebForm控件是如何解析成为HTML表单的。 WebForm优点。 WebForm缺点。 我使用WebForm常常烦的错误。

    什么是WebForm

    WebForm诞生于2002年

    WebForm是微软开发的一款产品,它将用户的请求和响应都封装为控件。

    WebForm负责封装用于用户端显示的数据。

    在EasyJWeb中,WebForm是一个非常重要,也是使用最为频繁的对象,他充当了在视图及程序之间传输、处理数据的媒介。

    常用方法

    1、WebForm中包含了视图页面中传输进来的数据,可以通过Request.Form.Get("键名")的方式来读取这些数据。由于提交过来的form表单只有只读属性,说以只能使用Get方法获取表单中的值,而不能添加修改表单里面的值。

    2.如果需要更多的用法,请参考EasyJWeb的教程;

    WebForm控件

    HTML控件
    asp .net将HTML控件当做普通字符串渲染到浏览器端(不做任何处理)

    asp .net控件
    经过asp .net高度封装的控件(运行在服务器端/渲染到浏览器端)

    HTML控件
    运行在服务器端/渲染到浏览器端/部分封装(属性多为HTML属性)
    与asp .net控件相比优点: ①操作方便②会对虚拟路径 id→ClientID进行处理


    WebForm控件的运行

    点击ASP按钮会先执行Page_Load事件,然后才会去执行相应的Button_Click()事件。

    WebForm的一个关键点就是PostBack,无论你点击哪一个ASP.NET服务器按钮都会回发到服务器端。而Html控件除非点击submit控件其余是不会回发的。

    但是也可以设定点击的控件是否需要回发的服务器端。如果设置ASP.NET的控件AutoPostBack="false"那么点击这个按钮是不会回发到服务器端的,同样不会造成页面刷新。

    protected void Page_Load(object sender,EventArgs e)

    {

    if(!Page.ISPostBack)

    {

    //TODO:界面初始化工作,如果不在这里面那么每次点击按钮回发的时候,都会先把这里面的方法执行一次,可能会破坏提交过来表单数据准确性和数据完整性。

    }

    }

    WebForm优点

    1.编写简便,所看见的页面就是最后运行的界面,提高了开发效率。

    2.支持事件模型开发。有丰富的服务器组件。   //ASP.NET服务器控件和javascript都事件模型,事件源将事件发送给一个或多个监听器,监听器只要接收到事件,监听器将处理这些事件。

    3.控件丰富。

    WebForm缺点

    1.封装太强,很多底层的东西初学者不是很明白。

    2.自定义控制不灵活。

    3.ViewState处理。

    这里要讲出ViewState的使用中对于开发过程中肯定是非常的方面可以像Session一样的在客户端存放一些零时数据和变量,因为他耗费的服务器资源较少(与Application和Session相比)。默认情况下.NET系统默认对状态数据进行维护,并且适用于任意浏览器。

    但是在出现他之后随之引起的问题,首先性能问题,用户显示页和发送页时的速度仍然可能减慢。设备限制。移动设备可能没有足够的内存容量来存储大量的视图状态数据。潜在的安全风险。视图状态存储在页上的一个或多个隐藏域中。虽然视图状态以哈希格式存储数据,但它可以被篡改。

    使用WebForm一些小技巧

    labTitle.Text = value.ToString().Trim().Replace(System.Environment.NewLine,"<br />");//让输入框中的换行转换成为一个网页显示的回车符号。

    Response.Redirect(Request.Url.ToString()); //表示通知浏览器需要刷新本页

    以流形式下载文件首先需要把Response.Clear();//清除Response中的数据,如果不清除Response里面的遗留数据可能会导致下载的文件存在乱码。

    WebForm前台JS调用后台代码

    1.后台要被调用的函数ss()
    public string ss()
    {
    return("a");
    }
    2.前台js调用示例:
    <script language=javascript>
    var a = "<%=ss()%>";
    alert(a);
    </script>


    展开全文
  • webform弹窗子页面简单实例

    千次阅读 2017-09-06 14:46:17
    webform弹窗子页面的简单实例。 代码没整理好,乱七八糟的懒得贴了,放图方便,有需要的话请私信QQ799630373 对了,记得下个layer.js 不然这个方法是调用不来的

    现有需求:统计页面为父页面,点击选择城市,显示弹窗。确定选择之后,弹窗关闭并且选定的城市s赋值到父页面输入框中。

    其实在winform里面这种弹窗很简单,但是webform里没玩过,所以摸索了很久,终于搞出来了,所以记录下~


    贴下重点代码就可以了 

    父页面代码:

    <script type="text/javascript">
            //编辑用户地址
            function chosecatagory() {
                    title = '添加发货地址';
                    url = '/SysManage/stat/CitySelect.aspx';
                layer.open({
                    type: 2,
                    title: title,
                    maxmin: true,
                    shadeClose: true, //点击遮罩关闭层
                    area: ['1000px', '650px'],
                    content: url,
                    scrollbar: false,
                    success: function (layero, index) {
                        var iframeBody = document.getElementById($('.layui-layer-content').find('iframe').prop('id')).contentWindow.document.body;
                        $(".manage_location_wrap", iframeBody).appendTo(iframeBody);
                        $('.container,header,footer', iframeBody).remove();
                    },
                    yes: function (index) {
                        console.log(11556156);
                        shwoAddrs();
                    },
                    cancel: function () {
                        console.log(11556156);
                    }
                });
            }
        </script>
    <input style="width: 90px" type="text" id="txt_catagory" maxlength="200" name="txt_catagory" placeholder="请选择分类" οnclick="chosecatagory()" runat="server" />
    


    子页面确认按钮代码:

     <input type="button" class="submit_btn" value="确认选择" οnclick="Confirm()"/>
    function Confirm() {
            layer.confirm('是否确认当前选择?', {
                btn: ['确认', '取消'] //可以无限个按钮
            }, function (index, layero) {
                parent.document.getElementById("txt_catagory").value = "wwwww";
                var SelfIndex = parent.layer.getFrameIndex(window.name); //获取窗口索引
    
                parent.layer.close(SelfIndex);
                //按钮【确认】的回调
            }, function (index) {
                //按钮【取消】的回调
            });
    
        }



    最终效果:




    展开全文
  • Default.aspx protected void Page_Load(object sender, EventArgs e) { Response.Redirect("WebForm1.aspx"); } WebForm1.aspx About.aspx
  • winform和webform有什么区别

    千次阅读 2016-07-27 14:10:34
    webform是浏览器模式,就是我们上网,打开浏览器那种模式。 winform之间传值比较麻烦,webform很简单。 wibform运行需要一大堆运行库,webform只需运行在服务器,然后客户端只需一个浏览器就可以运行。
  • Winform和WebForm的异同

    千次阅读 2011-01-16 20:46:00
    Winform和WebForm的一些比较,纯属个人观点.
  • WebForm弹出提示框

    千次阅读 2018-10-16 13:44:09
    1.Response.write("&lt;script&gt;alert('"+value+"')&lt;/script&gt;"); 2.点击页面上的按钮,弹出一个对话框提示是“确定”还是“取消”操作 btnDelRow.Attributes.Add(&......
  • 金格插件使用心得

    万次阅读 2012-12-25 09:52:47
    金格科技-iWebOffice2009全文批注实例  if (vIndex==1){   WebOpenLocal(); //打开本地文件  }  if (vIndex==2){   WebSaveLocal(); //保存本地文件  }  if (vIndex==3){ ... //保存
  • 判断是否为跨页面提交  跨页面提交的时候,源页面控件的内容被提交到目标页面,然后浏览器执行POST操作(注意,不是GET)。在ASP.NET 1.x中由于页面都是自己提交给自己,可以通过Page的IsPostBack属性来...
  • HttpContext详解

    万次阅读 2012-07-26 10:48:16
     在处理请求执行链的各个阶段中,会有一个对象在各个对象之间进行传递,也即会保存请求的上下文信息,这个对象就是HttpContext对象。HttpContext封装了ASP.NET要处理的单次请求的所有信息。在请求处理机制建立时...
  • 如何在ASP.NET中下载文件

    千次阅读 2007-11-06 10:45:00
    当我们要让用户下载一个文件,最简单的方式是通过Response.Redirect指令: Response.Redirect("test.doc") 您可以把上面这行指令放在Button的Click事件当中,当用户点击按钮之后,网页就会被转址到该word档,造成...
  • Ajax调用后台方法的几种写法(一)

    万次阅读 2012-12-13 14:54:59
    第一种如下:Js部分: var loadingDialog = $('Please wait for a little while.'); function bsl_showLoadingDialog(title) { loadingDialog.dialog({ modal:
  • [ASP.NET]如何点击按钮弹出新窗口,输入...(C#代码) 翻译自孟宪会之精彩世界的VB.NET代码http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4Webform1.aspx WebForm1 http://schemas.mic
  • 做MVC有些日子了,突然在工作中需要使用到asp.net web2.0 的webform,感觉一下子又回到了过去,但是却发现自己在前台JQuery中怎么调用后台cs代码都忘记了。找了些相关的资料,逐个测试使用了下,效果不错。贴出来...
  • 允许asp.net web程序的跨域访问

    万次阅读 2016-10-26 15:10:08
    什么叫跨域? 简单理解就是不同服务器,不同域名之间的访问。 如何设置asp.net web程序的跨域? 在web.config中添加如下代码 <system.webServer> <httpProtocol> <customHeaders> ...
  • C#弹出选择对话框的程序

    千次阅读 2009-12-08 16:14:00
    很多时候,我们都用一个按钮来触发一个事件,从而达到实现某一功能的操作,如按下一个按钮实现对数据库某一记录或某一批记录进行删除等等。通常我们要进行这些操作前都先要进行提示确认的步骤,这个提示步骤是:当...
  • WebFrom点击按钮调用js并执行webfrom

    千次阅读 2017-12-17 20:43:30
    代码如下: function doSubmit() { alert(1); } onclientcl
  • 原因:button按钮放在了form中,form提交总是默认点击按钮提交,因此点击button时,系统自动提交了form表单调用pageload事件。  因此大部分pageload的代码都是写在not ispostback中。
  • WebForm页面间传值方法

    千次阅读 2013-01-17 13:13:12
    Asp.NET WEB FORMS 给开发者提供了极好的事件驱动开发模式。Asp .NET为我们提供了三种方式,一种是可以通过用QueryString来传送相应的值,再一种是通过session变量来传送相应的值,还有就是通过Server.Transfer ...
1 2 3 4 5 ... 20
收藏数 38,794
精华内容 15,517
关键字:

webform按钮禁用diasble