各位高手棘手问题,请帮忙
我页面有个btnadd按钮,其为服务端button按钮,绑定了个js事件,事件中主要是打开另一个选择资料的页面,如何选择完毕将资料返回到当前页面,并将选择的值赋予给页面的隐藏控件,然后读取其隐藏控件的值赋予一个datatable,将页面的gridview绑定此datatable。
问题为:当我选择资料到一定的资料后,页面的所有的button按钮的事件将不会触发。
我有试过一次选择多笔,第二次不会触发,一次选择一笔,到了6笔就不能触发,

解决方案 »

  1.   

    如果js代码写在前端HTML页中,button按钮应该选用HTML控件,如果用WEB控件要在服务端手动添加Click属性才能触发事件。
      

  2.   

    cs:  protected void Page_Load(object sender, EventArgs e)
            {
                btnadd.Attributes.Add("onclick", "btnadd_onclick()");
                //瓚剿珜醱樓婥岆瘁衄恁寁窒藷陓洘
                if (dept.Value != "")
                {
                    string[] deptid = dept.Value.ToString().Trim().Split(',');
                    //樓婥窒藷陓洘
                    txtdeptnm.Text = deptid[1].ToString().Trim();
                    txtdeptid.Value = deptid[0].ToString().Trim();
                }
                if (!IsPostBack)
                {
                    //瓚剿絞忑棒樓婥腔峈晤憮珜醱遜岆陔崝珜醱
                    if (Request.QueryString["id1"] != null)
                    {
                        btninsert.Text = "党蜊";
                        cn.OpenConn();
                        //脤戙樓啤等腔俇淕訧蹋
                        DataSet ds = new DataSet();
                        DataSet dt = new DataSet();
                        string sql = "select A.framid,A.deptid,B.deptname,A.applysake from overtime as A left join dept as B " +
                                     " ON A.deptid=B.deptid where A.framid='" + Request.QueryString["framid"].ToString().Trim() + "'";
                        string sqlstr = "select A.workerid,B.name1 as workernm,A.stardate,A.startime,A.enddate,A.endtime,A.money,A.othr from overtime as A "+
                                        " LEFT JOIN stupordate AS B on A.workerid=B.workerid where A.framid='" + Request.QueryString["framid"].ToString().Trim() + "'";
                        cn.RunProc(sql, ds);
                        cn.RunProc(sqlstr, dt);
                        cn.Dispose(cn.OpenConn());
                        if (ds.Tables[0].Rows.Count > 0 & dt.Tables[0].Rows.Count > 0)
                        {
                            //蔚訧蹋殿隙跤眈茼腔諷璃
                            txtframid.Text = ds.Tables[0].Rows[0]["framid"].ToString().Trim();
                            txtdeptid.Value = ds.Tables[0].Rows[0]["deptid"].ToString().Trim();
                            txtdeptnm.Text = ds.Tables[0].Rows[0]["deptname"].ToString().Trim();
                            dept.Value = txtdeptid.Value.ToString().Trim() + "," + txtdeptnm.Text.ToString().Trim();
                            txtframstn.Text = ds.Tables[0].Rows[0]["applysake"].ToString().Trim();
                            string[] air = "workerid".ToString().Split(',');
                            gvdate.DataKeyNames = air;
                            gvdate.DataSource = dt;
                            gvdate.DataBind();
                        }
                    }
                    else
                    {
                        //堂隅諾桶芛
                        DataTable tb = new DataTable();
                        gvdate.DataSource = tb;
                        gvdate.DataBind();
                        txtframid.Text = sys.framid("overtime");
                    }
                }
                //瓚剿樓婥岆瘁恁寁樓啤陓洘
                if (this.workerid.Value != "")
                {
                    DataTable ds = new DataTable();
                    ds.Columns.Add("workerid");
                    ds.Columns.Add("workernm");
                    ds.Columns.Add("stardate");
                    ds.Columns.Add("startime");
                    ds.Columns.Add("enddate");
                    ds.Columns.Add("endtime");
                    ds.Columns.Add("money");
                    ds.Columns.Add("othr");
                    string[] workid = this.workerid.Value.ToString().Split('/');
                    string[] worknm = this.workernm.Value.ToString().Split('/');
                    int h = 0;
                    for (int i = 0; i < workid.Length; i++)
                    {
                        for (int j = 0; j < gvdate.Rows.Count; j++)
                        {
                            //瓚剿絞恁寁腔埜馱樓啤陓洘岆瘁湔婓
                            if (workid[i].ToString().Trim() == gvdate.Rows[j].Cells[0].ToString().Trim())
                            {
                                h = h + 1;
                            }
                        }
                        //瓚剿絞恁寁腔埜馱樓啤陓洘岆瘁湔婓
                        if (h == 0)
                        {
                            DataRow tr;
                            tr = ds.NewRow();
                            tr["workerid"] = workid[i].ToString().Trim();
                            tr["workernm"] = worknm[i].ToString().Trim();
                            tr["stardate"] = this.stardate.Value.ToString().Trim();
                            tr["startime"] = this.startime.Value.ToString().Trim();
                            tr["enddate"] = this.enddate.Value.ToString().Trim();
                            tr["endtime"] = this.endtime.Value.ToString().Trim();
                            tr["money"] = this.money.Value.ToString().Trim();
                            tr["othr"] = this.othr.Value.ToString().Trim();
                            ds.Rows.Add(tr);
                        }
                    }
                    //蔚恁寁腔樓啤陓洘祫諾
                    this.workerid.Value = "";
                    this.workernm.Value = "";
                    this.stardate.Value = "";
                    this.startime.Value = "";
                    this.enddate.Value = "";
                    this.endtime.Value = "";
                    this.money.Value = "";
                    this.othr.Value = "";
                    if (ds.Rows.Count > 0)
                    {
                        string[] air = "workerid".ToString().Split(',');
                        gvdate.DataKeyNames = air;
                        gvdate.DataSource = ds;
                        gvdate.DataBind();
                    }
                }
            }js: <script type="text/javascript">
            function btnadd_onclick() {
                //崝樓樓啤陓洘
                var deptid = document.getElementById("txtdeptid").value;
                var deptnm = document.getElementById("txtdeptnm").value
                if (deptid != "") {
                    var newwin = window.showModalDialog('../WorkeridTree/CommunicationTree.aspx?topnodevalue=' + deptid + '&topnodename=' + escape(deptnm) + '', getfrom, 'dialogwidth:425px;dialogheight:400px;help:no;scroll:0');
                    if (newwin != "[object]") {
                        //鳳樓啤陓洘恁寁珜醱換懂腔宎奀潔﹜﹜賦旰奀潔﹜﹜埜馱馱瘍﹜俷靡﹜郇訧捷薹﹜磁數煦笘
                        if (getfrom["workerid"].value != "") {
                            document.getElementById("workerid").value = getfrom["workerid"].value;
                            document.getElementById("workernm").value = getfrom["workernm"].value;
                            document.getElementById("stardate").value = getfrom["stardate"].value;
                            document.getElementById("startime").value = getfrom["startime"].value;
                            document.getElementById("enddate").value = getfrom["enddate"].value;
                            document.getElementById("endtime").value = getfrom["endtime"].value;
                            document.getElementById("money").value = getfrom["money"].value;
                            document.getElementById("othr").value = getfrom["othr"].value;
                        }    
                    }
                }
                else {
                    alert("珂恁寁窒藷");
                }
            }        function btnquery_onclick() {
                //鳳樓啤陓洘諷璃
                var e1 = document.getElementById("gvdate");
                var index = e1.rows.length;
                if (index <= 1) {
                    //湖羲窒藷恁寁敦极輛俴窒藷恁寁
                var newwin = window.showModalDialog('../DeptTree/DeptTree.aspx', getfrom, 'dialogwidth:320px;dialogheight:400px;help:no;scroll:0');
                    if (newwin != "[object]") {
                        var obj = getfrom["dept"];
                        if (obj.value != "") {
                            document.getElementById("dept").value = obj.value;
                            var dept = obj.value.split(',');
                            //樓婥窒藷蹈桶
                            document.getElementById("txtdeptnm").value = dept[1];
                            document.getElementById("txtdeptid").value = dept[0];
                        }
                    }
                }
                else {
                    alert("恁寁窒藷悵拸睡樓啤陓洘");
                }
            }    </script>
      

  3.   

    <script type="text/javascript">
            function btnadd_onclick() 
    起这个名字不怕和服务端事件重名么?
      

  4.   

    IsPostBackbtn.Click="btn_Click"可能是这地方也许有问题。
      

  5.   

    把 IsPostBack  放在最上面进行判断
      

  6.   

    上面的都试过没有用
    我说的是页面其它BUTTON的服务端CLICK事件不触发
      

  7.   

    btnadd.Attributes.Add("onclick", "btnadd_onclick()"); 
    这句换下
    btnadd.Attributes.Add("OnClientClick", "btnadd_onclick()"); 试试看。