读书人

请问一个后台获取input type=quot;buttonquot;

发布时间: 2012-09-15 19:09:28 作者: rapoo

请教一个后台获取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值了吧

读书人网 >asp.net

热点推荐