文本框值不会从asp.net中的委托函数更改

时间:2014-03-25 16:11:00

标签: c# asp.net

这是我的代码:

delegate void del(string data);
    public partial class CreateUser : System.Web.UI.Page
    {
        static string rfidkey;
        SerialPort serialPort1;
        //Timer timer1;
        del MyDlg;
        private delegate void SetTextDeleg(string text);
public CreateUser()
        {
            serialPort1 = new SerialPort();
            serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
            //
            timer1 = new Timer();
            timer1.Interval = 100;
            timer1.Enabled = false;
            timer1.Tick += new EventHandler<EventArgs>(timer1_Tick);
            //
            MyDlg = new del(Display);
        }
void Display(string s)
        {
            txtRFIDKey.Text = s;
}
void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            Data.s = serialPort1.ReadExisting();
            //txtRFIDKey.Text = Data.s;
            MyDlg.BeginInvoke(Data.s, null, null);
        }
}

1 个答案:

答案 0 :(得分:1)

这不能按照编码方式完成。基本上,您正在尝试将您的网页视为Windows应用程序。您需要了解“后面的代码”,上面编写的代码,在一台计算机上运行,​​文本字段所在的网页显示在另一台计算机上。一旦页面构造代码完成运行,服务器就无法更改页面。您可以使用网页中的回发和Ajax回调服务器,但即使这样也可能无法帮助您编写尝试的代码。

为了更好地了解asp.net网页处理的基础知识,请从这里开始:ASP.NET page life cycle explanation

或者,您可以使用Windows窗体或WPF将您的页面编码为应用程序。