请教一个后台获取input type="button"的value的问题

baibai610 2012-08-14 06:58:58
前台代码:

<script language="JavaScript">
$(document).ready(function () {
$(".imgbutton").toggle(function () {
$(this).removeClass("imgbutton").addClass("imgbutton2");
$(this).attr("value","1");
}, function () {
$(this).removeClass("imgbutton2").addClass("imgbutton");
$(this).attr("value","0");
});
});
</script>

<body>
<form id="form1" runat="server">
<div>
<input type="button" id="t1p1z11" runat="server" class="imgbutton" value="0">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
</form>
</body>

后台代码:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{

}
}
protected void Button1_Click(object sender, EventArgs e)
{
string b = this.t1p1z11.Value.ToString();
}

怎么后台取到的Value一直是"0"啊?前台已经能改变Value的值。
分不够了,要是有哪位大哥能指点下,我另外上号给分!!
...全文
595 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbbbbaby 2012-10-23
  • 打赏
  • 举报
回复
我要做个简单的ASP。net的web服务器控件的网站,差不多注册网站那种的类型的,可以帮忙不
Peng_baoqing 2012-10-23
  • 打赏
  • 举报
回复
如果前台是多个button呢该怎么获取呢?[Quote=引用楼主 的回复:]
前台代码:

C# code

<script language="JavaScript">
$(document).ready(function () {
$(".imgbutton").toggle(function () {
$(this).removeClass("imgbutton").addClass("imgbutton2……
[/Quote]
杰拉尔 2012-08-14
  • 打赏
  • 举报
回复
最简单的方法就是改下TEXT的样式 变成BUTTON的样子
杰拉尔 2012-08-14
  • 打赏
  • 举报
回复
type="button" 是无法post的
改成text便可


protected void Button1_Click(object sender, EventArgs e)
{
string b = t1p1z11.Value;
}


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jQuery-ui-1.8.18.custom/js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script language="JavaScript">
$(document).ready(function () {
$(".imgbutton").toggle(function () {
$(this).removeClass("imgbutton").addClass("imgbutton2");
$(this).attr("value", "1");
}, function () {
$(this).removeClass("imgbutton2").addClass("imgbutton");
$(this).attr("value", "0");
});
});
</script>

<body>
<form id="form1" runat="server">
<div>
<input type="text" id="t1p1z11" runat="server" class="imgbutton" value="0">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
</form>
</body>

</html>
mngzilin 2012-08-14
  • 打赏
  • 举报
回复
如果你非要用button显示值的话,最好在button后面放一个隐藏域或者文本框,文本框可以设置style的display属性为none来隐藏,也能达到你想要的效果,在imagebutton的toggle事件中同时设置文本框或者隐藏域的value属性,在cs文件中用request.form["name"]来获取那个值就可以了。

OK,到此为止。。。
mngzilin 2012-08-14
  • 打赏
  • 举报
回复
使用Request.Form["t1p1z11"].ToString()想要获取到html的button值,需要你处理下:

下面的形式是不能获取的,因为button值不会被post到服务端,如下
<input type="button" id="t1p1z11" name="t1p1z11" class="imgbutton" value="0">

使用文本框或者隐藏域才可以被post到服务端,并且需要指定name属性值,如下
<input type="text" id="t1p1z11" name="t1p1z11" class="imgbutton" value="0">
mngzilin 2012-08-14
  • 打赏
  • 举报
回复
你要分析下这个状态不能保存是不是和Viewstate有关,用reflector查看htmlinputbutton源码,继承关系:
htmlinputbutton---->htmlinputcontrol---->htmlcontrol,htmlinputcontrol的value属性get自base.Attributes["value"],base就是htmlcontrol,Attributes在htmlcontrol中定义为public AttributeCollection Attributes,而AttributeCollection是靠一个类型为StateBag的_bag变量保存的,StateBag的数据全部保存在ViewState中,依靠LoadViewState方法加载。
----------------------------------------------------------------------------------------------

找到原因后就知道为什么获取不到value值了吧
公司一个项目手机端要用到图片预览的东西,搞插件又碰到各种问题 搞得脑袋大 恰好公司有个大神 就请教了一番 大神想了个很奇特的办法 –实现前后端分离 即前端只是实现图片预览的效果 而后台依旧用之前的input=file 来实现。 步骤一: 首先 建立一个空的div 用来存储后台获取input file文件 为了不影响页面 设置为不可见

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧