使用Asp.Net按钮单击事件更改变量值

时间:2015-10-01 08:30:31

标签: asp.net

我是ASP.net的初学者。我最近使用以下代码创建了一些Web表单应用程序:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainForm.aspx.cs" Inherits="TestAssignVariable.MainForm" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">

        <div>
            <asp:Button ID="Button1" runat="server" Text="CHECK" OnClick="Check_Data" />
            <asp:Label ID="ketCekData" runat="server" Text="Label"></asp:Label>
        </div>

        <div>
            <asp:Button ID="Button2" runat="server" Text="ASSIGN" OnClick="Assign_Data"  />
            <asp:Label ID="labelProcess" runat="server" Text="Label"></asp:Label>
        </div>

    </form>
</body>
</html>

代码背后:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TestAssignVariable
{
    public partial class MainForm : System.Web.UI.Page
    {

        private string file_path = "startx";

        int a = 12; 


        private string FilePath
        {
            get
            {
                return file_path; 
            }
            set
            {
                file_path = value; 
            }
        }


        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Check_Data(object sender, EventArgs e)
        {
            ketCekData.Text = a.ToString()  ; 
        }

        protected void Assign_Data(object sender, EventArgs e)
        {
            // FilePath = "AWESOME"; 
            a = 100; 
            labelProcess.Text = "Data Assigned"; 
        }

    }
}

因此,有两个ID为Button1Button2的按钮。点击Button2后,它会触发一个事件,将变量a的值从12更改为100Button1然后在标签a上显示变量ketChekData的值。因此,当我点击跟随Button2后的Button1时,标签100中必须显示ketCekData。但是我不明白为什么这不起作用:标签12上仍然显示ketCekData

2 个答案:

答案 0 :(得分:2)

a的值在page_load之外声明。每个Postback值都是重置。因此,在Aspx

中创建一个隐藏的字段

Aspx

<asp:HiddenField ID="hdna" value="12" runat="server" />

Cs

删除int a=12;

 protected void Check_Data(object sender, EventArgs e)
        {
            ketCekData.Text = hdna.value  ; 
        }

答案 1 :(得分:0)

在这里查看我的dotnetfiddle:https://dotnetfiddle.net/L8lUSY

HTML

@model HelloWorldMvcApp.ViewModelExample
@{
    Layout = null;
}

<!DOCTYPE html>
<!-- template from http://getbootstrap.com/getting-started -->

<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Bootstrap 101 Template</title>

        <!-- CSS Includes -->
        <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">

        <style type="text/css">

            .field-validation-error {
                color: #ff0000;
            }

        </style>
    </head>

    <body>
        <div class="container">
            <div class="col-md-6 col-md-offset-3">
                <h1>Create item</h1>
                <div class="form-group parentId">
                    @Html.LabelFor(m => m.ParentId)
                    @Html.TextBoxFor(m => m.ParentId)
                </div>
                <button class="button1">Button 1</button>
            <button class="button2">Button 2</button>
            </div>
        </div>

        <!-- JS includes -->
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>

        <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
        <script src="//ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>

        <script type="text/javascript">


            $(function(){
                $('.parentId').hide();

                $('.button1').on('click', function()
                {
                    $('.parentId').toggle();
                });

                $('.button2').on('click', function()
                                 {
                                    $('#ParentId').val('100'); 
                                 });
            });

        </script>
    </body>
</html>

使用javascript / jQuery更改值

可能更容易