日期:2014-05-18  浏览次数:20951 次

c#的一个问题:如何在form1提交之前触发button的onclick事件
代码:
后台代码
C# code

            foreach (string every_way in my_ways.Split(','))
            {
                Button way_btn = new Button();
                way_btn.ID = "way" + count_num.ToString();
                way_btn.Style.Value = "width:120px";
                way_btn.CssClass = "buttonone";
                way_btn.Attributes.Add("onclick", "chooseme(" + count_num + ")");
                way_btn.Text = every_way;
                show_my_way.Controls.Add(way_btn);
                count_num++;
            }



前台:
C# code

        function chooseme(num) {
            document.getElementById("way_num").value = num;
            return false;
        }
......
<label runat="server" id="show_my_way"></label>
    <input runat="server" id="way_num" type="hidden"/>



目的是想在按钮点击后储存不同的值到way_num中,而后等待页面只form1提交后读取值做处理。
本身应该不复杂的代码出了好多问题。
先开始打算赶在form1提交前直接用按钮的onclick事件跳转到其他页面,但是发现失败,而且其中一个计时器后跳转的js代码却能正确运行,现在我不得已只好专用这种曲线救国的方式,但是仍然不能在form1提交前修改way_num中的值。快把我弄疯了,望各位大大给个法子。在此拜谢。

------解决方案--------------------
如果点击按钮不想提交表单,可以把这句
way_btn.OnClientClick = "chooseme(" + count_num.ToString() + ");";
改成
way_btn.OnClientClick = "return chooseme(" + count_num.ToString() + ");";
后面再加一句:
way_btn.UseSubmitBehavior = false;