先说下问题:
前台页面有个<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">,点击某项时会在后台执行ClientScript.RegisterStartupScript(this.GetType(), "js", "openDiv();", true);来打开一个悬浮的div层,  function openDiv() {
        $("#divSCA").OpenDiv();
    }
  function closeDiv() {
        $("#divSCA").CloseDiv();
        var s = '<%=CsharpVoid() %>';
        alert(s);
        return true;
    }
    function closeDiv1() {
        $("#divSCA").CloseDiv();
        var s = '<%=CsharpVoid1() %>';
        alert(s);
        return false;
    }, <div id="divSCA">
<font style=" font-size:50;" >注意事项</font>
        <br>
<input type="button" value="确认" style= "font-size:medium" onclick="return closeDiv()">
    <input type="button" value="返回" style= "font-size:medium" onclick="return closeDiv1()">
    <p>...</p>
</div>,本来是想通过div里面的2个button的不同事件来调用后台代码中不同的函数,现在问题就出来了:当后台第一次执行ClientScript.RegisterStartupScript(this.GetType(), "js", "openDiv();", true);时就把div里面的事件都执行完了,根本就不等待我的响应。纠结了2天,希望谁解答下!

解决方案 »

  1.   


    protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.EditItem || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Button btn = (Button)e.Item.FindControl("yourbuttonid");
                    btn.Attributes.Remove("onclick");
                    btn.Attributes.Add("onclick", "openDiv(); return false;");
                }
            }
    你的Repeater控件前的每个想注册脚本的按键,后台程序在创建Repeater时就添加相关的前台脚本处理就可以了,类似上面,根据需求自已加就可以了