当前位置: 代码迷 >> ASP.NET >> 请问一个后台获取input type="button"的value的有关问题
  详细解决方案

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

热度:3318   发布时间:2013-02-25 00:00:00.0
请教一个后台获取input type="button"的value的问题
前台代码:
C# code
<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>

后台代码:
C# code
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的值。
分不够了,要是有哪位大哥能指点下,我另外上号给分!!

------解决方案--------------------------------------------------------
你要分析下这个状态不能保存是不是和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值了吧
  相关解决方案