asp.net,怎么样点击Button不刷新页面?

时间:2021-10-19 17:16:17
asp.net,怎么样点击Button不刷新页面?
页面cs代码,有一个字段,点击button以后,执行一段程序,这个程序里要用到这个字段。但是在执行这段代码之前,页面会自动刷新,那个字段会被重新初始化,请问这个问题如何解决?
谢谢!

25 个解决方案

#1


用html控件不就好了

#2


ajax

#3


把字段保存到HiddenField

#4


button如果不是submit的话页面应该不会刷新吧?

#5


引用 1 楼 fengjian_428 的回复:
用html控件不就好了

引用 2 楼 sandy945 的回复:
ajax

这样的话岂不是要用js写后台代码了。执行click的后台代码我是用c#写的,而且还要用到页面cs文件里的一个字段。

#6


不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
 初始化
 }


这样刷新也没关系了

#7


把字段的值保存到HiddenField

#8


引用 6 楼 cpp2017 的回复:
不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
初始化
}


这样刷新也没关系了


就这个了

#9


使用Ajax控件,效果就跟没刷新一样……

#10


引用 6 楼 cpp2017 的回复:
不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
初始化
}


这样刷新也没关系了

没用的 字段还是被重新初始化了

#11


引用 6 楼 cpp2017 的回复:
不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
初始化
}


这样刷新也没关系了

整个页面重新初始化了,里面的字段也就重新初始化了。

#12


有个名词叫 ViewState

#13


哦, 微软不是提供了一大堆AJAX控件, lz可以试试

#14


不太明白楼主的意思
你说的是.net控件按钮要刷新那就换html

#15


引用 12 楼 sandy945 的回复:
有个名词叫 ViewState



up up up up up up

#16


引用 12 楼 sandy945 的回复:
有个名词叫 ViewState

是的,这个东西是维持页面的状态的,可以用。

#17


没用的 字段还是被重新初始化了

========>
你没有用ViewState来保存状态.



#18


两个方式啊。如果是asp:button控件,,用onclientclick实现客户端方法,用onserverclick实现服务端方法  如果不刷新在onclientclick事件末尾return;input:button同理。如果是无刷新数据交互用ajax方法

#19


引用 12 楼 sandy945 的回复:
有个名词叫 ViewState

引用 17 楼 cpp2017 的回复:
没用的 字段还是被重新初始化了

========>
你没有用ViewState来保存状态.

我定义了一个类,原本这个类是这个页面里的字段,现在用viewstate的话,怎么写法。
我下面这样的写法报错了。

ClassApple apple = new ClassApple();
ViewState["Apple"] = apple;

//取值的时候:
ClassApple apple = (ClassApple)ViewState["Apple"];

#20


在你的类 上面 加上

[Serializable]

#21


引用 20 楼 sandy945 的回复:
在你的类 上面 加上

[Serializable]

灰太狼 这个写到哪里?下面这样吗?

public class [Serializable] ClassApple()
{
}

#22



[Serializable]
public class  ClassApple()
{
}

是写到上面的

#23


引用 6 楼 cpp2017 的回复:
不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
初始化
}


这样刷新也没关系了


同意

#24


简单的话就用UpdatePanel, 安装一个MS的Ajax extension就可以。
或者用Ajax,当然开发量会比较大。

#25


遇到了同样的问题,楼主可以把想在CS文件中想保存的字段,在网页中用一个隐藏的label保存就可以了。

#1


用html控件不就好了

#2


ajax

#3


把字段保存到HiddenField

#4


button如果不是submit的话页面应该不会刷新吧?

#5


引用 1 楼 fengjian_428 的回复:
用html控件不就好了

引用 2 楼 sandy945 的回复:
ajax

这样的话岂不是要用js写后台代码了。执行click的后台代码我是用c#写的,而且还要用到页面cs文件里的一个字段。

#6


不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
 初始化
 }


这样刷新也没关系了

#7


把字段的值保存到HiddenField

#8


引用 6 楼 cpp2017 的回复:
不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
初始化
}


这样刷新也没关系了


就这个了

#9


使用Ajax控件,效果就跟没刷新一样……

#10


引用 6 楼 cpp2017 的回复:
不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
初始化
}


这样刷新也没关系了

没用的 字段还是被重新初始化了

#11


引用 6 楼 cpp2017 的回复:
不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
初始化
}


这样刷新也没关系了

整个页面重新初始化了,里面的字段也就重新初始化了。

#12


有个名词叫 ViewState

#13


哦, 微软不是提供了一大堆AJAX控件, lz可以试试

#14


不太明白楼主的意思
你说的是.net控件按钮要刷新那就换html

#15


引用 12 楼 sandy945 的回复:
有个名词叫 ViewState



up up up up up up

#16


引用 12 楼 sandy945 的回复:
有个名词叫 ViewState

是的,这个东西是维持页面的状态的,可以用。

#17


没用的 字段还是被重新初始化了

========>
你没有用ViewState来保存状态.



#18


两个方式啊。如果是asp:button控件,,用onclientclick实现客户端方法,用onserverclick实现服务端方法  如果不刷新在onclientclick事件末尾return;input:button同理。如果是无刷新数据交互用ajax方法

#19


引用 12 楼 sandy945 的回复:
有个名词叫 ViewState

引用 17 楼 cpp2017 的回复:
没用的 字段还是被重新初始化了

========>
你没有用ViewState来保存状态.

我定义了一个类,原本这个类是这个页面里的字段,现在用viewstate的话,怎么写法。
我下面这样的写法报错了。

ClassApple apple = new ClassApple();
ViewState["Apple"] = apple;

//取值的时候:
ClassApple apple = (ClassApple)ViewState["Apple"];

#20


在你的类 上面 加上

[Serializable]

#21


引用 20 楼 sandy945 的回复:
在你的类 上面 加上

[Serializable]

灰太狼 这个写到哪里?下面这样吗?

public class [Serializable] ClassApple()
{
}

#22



[Serializable]
public class  ClassApple()
{
}

是写到上面的

#23


引用 6 楼 cpp2017 的回复:
不要在Page_Load中直接初始化

if(!this.IsPostBack)
{
初始化
}


这样刷新也没关系了


同意

#24


简单的话就用UpdatePanel, 安装一个MS的Ajax extension就可以。
或者用Ajax,当然开发量会比较大。

#25


遇到了同样的问题,楼主可以把想在CS文件中想保存的字段,在网页中用一个隐藏的label保存就可以了。