CRM2011弹出asp.net模态窗口关闭的问题

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="batchassign.aspx.cs" Inherits="Demo.batchassign" %>

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Xrm.Sdk.Client;
using UploadFiles;
using System.ServiceModel.Description;
using Microsoft.Xrm.Sdk;
using System.Data.SqlClient;
using System.Data;

namespace Demo
{
    public partial class batchassign : System.Web.UI.Page
    {
        private IOrganizationService orgService;
        string ownerid = string.Empty;
        private static string strConnectionString = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                orgService = GetCrmService();
                BindGridView();
            }
        }

        public void BindGridView() 
        {
            string strOwnerId=Request.QueryString["ownerid"].ToString();
            if (!string.IsNullOrEmpty(strOwnerId))
            {
                Guid OwnerId = new Guid(strOwnerId);
                gvInfo.DataSource = GetSettingsByProcedure(orgService, OwnerId);
                gvInfo.DataBind();
            }
        }

        protected void gvInfo_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                //单选
                CheckBox cb = (CheckBox)e.Row.FindControl("chkSelected");
                if (cb != null)
                    cb.Attributes.Add("onclick", "signcheck(" + cb.ClientID + ")");

                //如果是绑定数据行 
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    //鼠标经过时,行背景色变 
                    e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
                    //鼠标移出时,行背景色变 
                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");
                }
            }
            catch
            {
                
            }

        }

        private OrganizationServiceProxy GetCrmService()
        {
            string filePath = MapPath(@"/ISV/Config.txt");
            FileConfig config = new FileConfig(filePath);
            string crmUrl;
            string orgName = config.GetValue("orgName").ToLower();
            if (Request.Url.Host.ToLower().StartsWith(orgName, StringComparison.CurrentCultureIgnoreCase))
            {
                crmUrl = Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/XRMServices/2011/Organization.svc";
            }
            else
            {
                crmUrl = Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/" + orgName + "/XRMServices/2011/Organization.svc";
            }
            ClientCredentials credentials = new ClientCredentials();
            credentials.UserName.UserName = config.GetValue("UserName");
            credentials.UserName.Password = config.GetValue("Password");

            OrganizationServiceProxy crmServiceProxy = new OrganizationServiceProxy(new Uri(crmUrl), null, credentials, null);
            return crmServiceProxy;
        }

        /// <summary>
        /// 依据指定的CRM服务,指定的OwnerId,获取销售顾问
        /// </summary>
        /// <param name="service">指定的CRM服务</param>
        /// <param name="entityName">指定的OwnerId</param>
        /// <returns>流水号管理类</returns>
        public  DataSet GetSettingsByProcedure(IOrganizationService service, Guid OwnerId)
        {
            DataSet ds = new DataSet();

            if (string.IsNullOrEmpty(strConnectionString))
            {
                SystemConfig config = new SystemConfig(service, "IDOSSales_ReadOnly");
                strConnectionString = config.GetValue();
            }

            using (SqlConnection sqlconn = new SqlConnection(strConnectionString))
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = sqlconn;
                cmd.CommandText = "[dbo].[GetSalesConsultant]";
                cmd.CommandType = CommandType.StoredProcedure;
                sqlconn.Open();
                IDataParameter[] parameters = { 
                                       
                                        new SqlParameter("@ownerid", SqlDbType.UniqueIdentifier)};
                parameters[0].Value = OwnerId;
                cmd.Parameters.Add(parameters[0]);
                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                adapter.Fill(ds);
                sqlconn.Close();
            }

            return ds;
        }

        protected void chkSelected_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chk = sender as CheckBox;

            int index = ((GridViewRow)(chk.NamingContainer)).RowIndex;

            if (chk.Checked)
            {
                ownerid = gvInfo.Rows[index].Cells[3].Text.Trim();
            }
        }

        protected void btnOK_Click(object sender, EventArgs e)
        {
            if (ownerid != null && ownerid != "")
            {
                Response.Write("<script>window.returnValue='" + ownerid + "';window.opener = \"\"; window.open(\"\", \"_self\"); window.close();</script>");
                //Response.Write("<script>window.returnValue='" + ownerid + "';window.close();</script>");
            }   
        }

        protected void btnCancel_Click(object sender, EventArgs e)
        {
            //Response.Write("<script>window.returnValue='1';</script>");
            Response.Write("<script>window.returnValue='" + ownerid + "';window.opener = \"\"; window.open(\"\", \"_self\"); window.close();</script>");
        }
    }
}


这是模态窗口的代码,通过Response.Write始终关闭不了模态窗口,具体原因不明觉厉,希望大家各抒己见探讨探讨,请各位高手多多指教。。。。。。

posted @ 2014-10-28 10:27  SharkLock  阅读(752)  评论(0编辑  收藏  举报