ScriptManager.RegisterStartupScript不会在RadGrid的ItemDataBound中触发

时间:2014-06-11 09:03:17

标签: c# asp.net telerik radgrid

为什么ScriptManager.RegisterStartupScript没有触发我的RadGrid的ItemDataBound事件?

protected void gridMonitorVisibilityConfiguration_OnItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
    try
    {
        if (e.Item is Telerik.Web.UI.GridDataItem)
        {
            if (!IsPostBack)
            {
                Telerik.Web.UI.GridDataItem item = (Telerik.Web.UI.GridDataItem)e.Item;
                Label lblnoAll = (Label)item["Configuration"].FindControl("lblNoAcces");
                Label lblView = (Label)item["Configuration"].FindControl("lblview");
                Label lblViewMod = (Label)item["Configuration"].FindControl("lblviewMod");
                Label lblUser = (Label)item["Configuration"].FindControl("lblUserRoleText");

                HiddenField hdnFlag = (HiddenField)item["Configuration"].FindControl("hdnrdFlagValue");

                RadioButton rdno = (RadioButton)item["Configuration"].FindControl("rdoNoAccess");
                RadioButton rdview = (RadioButton)item["Configuration"].FindControl("rdoViewOnly");
                RadioButton rdVM = (RadioButton)item["Configuration"].FindControl("rdoViewModify");

                DataTable dts = Facade.Monitoring.SelectVisibilityConfiguration(UserProfile.UserLogin, hdnMonitoringID.Value).Tables[0];
                if (dts.Rows.Count > 0)
                {
                    if (!Boolean.Parse(dts.Rows[0]["VisibilityFlag"].ToString()))
                    {
                        rdShared.Checked = false;
                        lblUser.Style["color"] = "grey";
                        lblshared.Style["color"] = "grey";
                        lblnoAll.Style["color"] = "grey";
                        lblView.Style["color"] = "grey";
                        lblViewMod.Style["color"] = "grey";

                        //disable img
                        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "DisableDivImg",
                            "<script type='text/javascript'>$('[ID*=DivImgSelect]').off('click');</script>", false);
                        //disable text
                        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "DisableDivText",
                            "<script type='text/javascript'>$('[ID*=DivText]').off('click');</script>", false);
                        // gridMonitorVisibilityConfiguration.Enabled = false;
                        gridMonitorVisibilityConfiguration.ShowFooter = false;
                        SetScreen();
                    }
                    else
                    {
                        rdShared.Checked = true;
                        BindGridMonitorVisibilityConfiguration();
                        gridMonitorVisibilityConfiguration.ShowFooter = true;
                        rdPrivate.Checked = false;
                    }
                }
                if (hdnFlag.Value == "2")
                {
                    rdVM.Checked = true;
                }
                else if (hdnFlag.Value == "1")
                {
                    rdview.Checked = true;
                }
                else if (hdnFlag.Value == "0")
                {
                    rdno.Checked = true;
                }
            }
        }
    }
    catch (Exception ex)
    {
        SetException(ex);
    }
}

当数据加载条件禁用时,页面上的jQuery将被禁用。在这种情况下,我将ScriptManager放在ItemDataBound上,这是第一次加载时的getdata。

2 个答案:

答案 0 :(得分:0)

尝试使用这个

   RadScriptManager.RegisterStartupScript(Page, Page.GetType(), "1", "Sys.Application.add_load(function(){{alert('success');}}, 0);", true);

答案 1 :(得分:0)

如果将RegisterStartupScript的最后一个参数设置为true,则不必添加脚本标记。看起来你正试图找到元素DivText,所以试试这个:

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "DisableDivText",
    "$find('DivText').off('click');", true);
相关问题