C# GridView弹出窗口新增行 删除行
<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="true" CodeBehind="ContactEip.aspx.cs" Inherits="AccountPlan.ContactEip" ValidateRequest="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="head1" runat="server"> <title>发起价值探索之旅EIP流程</title> <%--<script src="Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>--%> <style type="text/css"> #gvVehicle table td { width: 12px; } </style> <script type="text/javascript"> var accountid = "<%=contactid1 %>"; function CbxOnClick(obj) { var inputs = document.getElementById("<%=gvContact.ClientID%>").getElementsByTagName("input"); ; i < inputs.length; i++) { if (inputs[i].type == "checkbox") { inputs[i].checked = false; } } obj.checked = true; } //单击选择 function ASingleClick(obj) { //当前行只有一个input,故不判定是否为checkbox ]; var inputs = document.getElementById("<%=gvContact.ClientID%>").getElementsByTagName("input"); ; i < inputs.length; i++) { if (inputs[i].type == "checkbox") { inputs[i].checked = false; } } cbx.checked = true; } //双击选中(关闭页面) function ADoubleClick(obj) { window.open("/main.aspx?etc=2&extraqs=%3f_gridType%3d2%26etc%3d2%26id%3d%257b" + obj.id + "%257d%26pagemode%3diframe%26preloadcache%3d1447931081302%26rskey%3d892563048&pagetype=entityrecord", "_blank", false); } function OpenContactForm() { var id = document.getElementById("ownerid").value; var returnValue = window.showModalDialog('../AccountPlan/ContactLookup.aspx?ownerid=' + id + '&contactid=' + accountid, 'newwindow', 'dialogHeight=700px;dialogWidth=750px;top=0;left=0;toolbar=no;menubar=no;scrollbars=no; resizable=no;location=no; status=no;'); if (returnValue != null) { if (returnValue.contact.name == null || returnValue.contact.name == "") { alert("联系人姓名字段没有值,请双击此联系人进行维护"); document.getElementById("selcontactid").value = ""; return; } if (returnValue.yt_telephone == null || returnValue.yt_telephone == "") { alert("联系人电话字段没有值,请双击此联系人进行维护"); document.getElementById("selcontactid").value = ""; return; } if (returnValue.yt_duties == null || returnValue.yt_duties == "") { alert("联系人职务字段没有值,请双击此联系人进行维护"); document.getElementById("selcontactid").value = ""; return; } if (returnValue.yt_role == null || returnValue.yt_role == "") { alert("联系人决策角色字段没有值,请双击此联系人进行维护"); document.getElementById("selcontactid").value = ""; return; } if (returnValue.yt_active == null || returnValue.yt_active == "") { alert("联系人兴趣爱好字段没有值,请双击此联系人进行维护"); document.getElementById("selcontactid").value = ""; return; } if (returnValue.yt_brandpreference == null || returnValue.yt_brandpreference == "") { alert("联系人品牌偏好字段没有值,请双击此联系人进行维护"); document.getElementById("selcontactid").value = ""; return; } if (returnValue.customertype == null || returnValue.customertype == "") { alert("联系人民族字段没有值,请双击此联系人进行维护"); document.getElementById("selcontactid").value = ""; return; } if (returnValue.gender == null || returnValue.gender == "") { alert("联系人性别字段没有值,请双击此联系人进行维护"); document.getElementById("selcontactid").value = ""; return; } document.getElementById("selcontactid").value = returnValue.contact.id; accountid += "'" + returnValue.contact.id + "',"; //$("#selcontactid").val(returnValue.contact.id); //alert(accountid); } else { document.getElementById("selcontactid").value = ""; } } </script> <base target="_self" /> </head> <body style="font-size: 12px; background: #E9EDF1;"> <form id="form1" runat="server"> <input type="hidden" id="contactid" runat="server" /> <input type="hidden" id="ownerid" runat="server" /> <input type="hidden" id="selcontactid" runat="server" /> <asp:Label runat="server" Text="" ID="txterror"></asp:Label> <asp:ScriptManager ID="scriptManager1" runat="server"> </asp:ScriptManager> <table style="width: 560px; margin-left: 30px;"> <tr> <td> <asp:UpdatePanel ID="updatePanel2" runat="server"> <ContentTemplate> <asp:Button Text="新增" runat="server" ID="btnAdd" OnClientClick="OpenContactForm()" OnClick="BtnAdd_Click" /> <asp:Button Text="删除" runat="server" ID="btnDelete" OnClick="BtnDelete_Click" /> </ContentTemplate> </asp:UpdatePanel> </td> <td> </td> </tr> <tr> <td colspan="> <asp:UpdatePanel ID="updatePanel1" runat="server"> <ContentTemplate> <asp:GridView ID="gvContact" runat="server" Width="550px" HeaderStyle-BackColor="#A7CDF0" AutoGenerateColumns=" DataKeyNames="ContactId" onpageindexchanging="GvContact_PageIndexChanging"> <Columns> <asp:TemplateField HeaderText="选择" HeaderStyle-Width="30px"> <ItemTemplate> <input type="checkbox" id="chk" runat="server" class="checkbox" value='<%# Eval("ContactId")%>' /> <%-- <asp:CheckBox runat="server" ID="cbxVehicle" onclick="CbxOnClick(this)" />--%> </ItemTemplate> </asp:TemplateField> <asp:TemplateField ItemStyle-Width="40px" HeaderText="姓名"> <ItemTemplate> <a href="javascript:void(0);" onclick="ASingleClick(this)" ondblclick="ADoubleClick(this)" style="color: black" id="<%#Eval("ContactId")%>" > <asp:Label ID="lblname" runat="server" Text=' <%# Eval("LastName")%>'></asp:Label></a> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="工作职务" HeaderStyle-Width="50px"> <ItemTemplate> <asp:Label ID="lblpost" runat="server" Text=' <%# Eval("yt_postname")%>'></asp:Label></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="决策角色" ItemStyle-Width="50px"> <ItemTemplate> <asp:Label ID="lblrole" runat="server" Text=' <%# Eval("AccountRoleCodename")%>'></asp:Label></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="兴趣爱好" ItemStyle-Width="50px"> <ItemTemplate> <asp:Label ID="lbllike" runat="server" Text='<%# Eval("yt_like")%>'></asp:Label></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="品牌偏好" ItemStyle-Width="50px"> <ItemTemplate> <asp:Label ID="lblbrand" runat="server" Text=' <%# Eval("yt_brand_remark")%>'></asp:Label></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="联系方式" ItemStyle-Width="20px"> <ItemTemplate> <asp:Label ID="lblphone" runat="server" Text='<%# Eval("MobilePhone")%>'></asp:Label></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="民族" ItemStyle-Width="30px"> <ItemTemplate> <asp:Label ID="lbltypecode" runat="server" Text='<%# Eval("customertypecode")%>'></asp:Label></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="性别" ItemStyle-Width="30px"> <ItemTemplate> <asp:Label ID="lblgender" runat="server" Text='<%# Eval("gendercode")%>'></asp:Label></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="所属分公司" ItemStyle-Width="50px"> <ItemTemplate> <asp:Label ID="lblcompany" runat="server" Text='<%# Eval("name")%>'></asp:Label></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="客户类别" ItemStyle-Width="30px"> <ItemTemplate> <asp:Label ID="lblcategory" runat="server" Text='<%# Eval("yt_vehicle_category")%>'></asp:Label></ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> </td> </tr> </table> <div style="position: absolute; right: 80px; bottom: 20px; height: 30px; text-align: right;"> <asp:Button ID="btnSave" runat="server" Text="提交" OnClick="BtnSave_Click" /> </div> </form> </body> </html>
using System; using System.Data; using System.Linq; using System.ServiceModel.Description; using System.Text; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Xml; using AccountPlan.BusinessLogic; using AccountPlan.EIPContact; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Client; using Microsoft.Xrm.Sdk.Query; namespace AccountPlan { public partial class ContactEip : System.Web.UI.Page { private static IOrganizationService orgService = null; public string contactid1 = ""; protected void Page_Load(object sender, EventArgs e) { string selcontactid = ""; contactid1 = Request["contactid"].Replace("}", "'").Replace("{", "'"); //"'70AC84A7-4C7D-E411-9B32-0050568552DC','6EAC84A7-4C7D-E411-9B32-0050568552DC'"; string ownerid = Request["ownerid"].ToString(); //"008611BC-D76A-E311-B5F7-005056AD01FA"; this.ownerid.Value = ownerid; selcontactid = this.selcontactid.Value; if (!IsPostBack) { try { if (this.DT == null) { DT = new DataTable(); DT.Columns.Add(new DataColumn("ContactId")); DT.Columns.Add(new DataColumn("LastName")); DT.Columns.Add(new DataColumn("yt_post")); DT.Columns.Add(new DataColumn("yt_postname")); DT.Columns.Add(new DataColumn("AccountRoleCode")); DT.Columns.Add(new DataColumn("AccountRoleCodename")); DT.Columns.Add(new DataColumn("yt_attitude")); DT.Columns.Add(new DataColumn("yt_attitudename")); DT.Columns.Add(new DataColumn("yt_brand_remark")); DT.Columns.Add(new DataColumn("MobilePhone")); DT.Columns.Add(new DataColumn("customertypecode")); DT.Columns.Add(new DataColumn("gendercode")); DT.Columns.Add(new DataColumn("name")); DT.Columns.Add(new DataColumn("yt_vehicle_category")); } DT = QueryData(contactid1); gvContact.DataSource = DT; gvContact.DataBind(); string temp = string.Empty; ; j < gvContact.Rows.Count; j++) { temp += "'" + gvContact.DataKeys[j]["ContactId"].ToString() + "'" + ","; } contactid1 = temp; } catch (Exception ex) { AlertMsg(ex.Message); } } } /// <summary> /// 数据的记录行 /// </summary> private DataTable DT { get { return ViewState["selected"] as DataTable; } set { ViewState["selected"] = value; } } public DataTable QueryData(string contact) { string sql = string.Empty; if (!string.IsNullOrEmpty(contact)) { sql = @"SELECT cb.ContactId, cb.LastName, c.yt_post, post.name yt_postname, isnull(cb.AccountRoleCode,-1) AccountRoleCode, ar.name AccountRoleCodename, c.yt_like, c.yt_brand_remark, cb.MobilePhone, ct.name customertypecode, gr.name gendercode, m.name yt_vehicle_category , ac.name FROM ContactExtensionBase c INNER JOIN ContactBase cb ON c.ContactId = cb.ContactId LEFT OUTER JOIN account ac WITH(NOLOCK) ON cb.parentcustomerid = ac.accountid OUTER APPLY dbo.fn_GetPickListName('Contact','yt_post',c.yt_post) post OUTER APPLY dbo.fn_GetPickListName('Contact','AccountRoleCode',cb.AccountRoleCode) ar OUTER APPLY dbo.fn_GetPickListName('Contact','gendercode',cb.gendercode) gr OUTER APPLY dbo.fn_GetPickListName('Contact','customertypecode',cb.customertypecode) ct OUTER APPLY dbo.fn_GetPickListName('account','yt_vehicle_category',yt_vehicle_category) m WHERE cb.StateCode = 0 and c.ContactId in (" + contact + ")"; } DataSet ds = BusinessLogic.SqlHelper.Query(sql); ]; } protected void BtnSave_Click(object sender, EventArgs e) { InitializeConfig(); string owner = Request.QueryString["ownerid"]; string temp = string.Empty; ; j < gvContact.Rows.Count; j++) { temp += "'" + gvContact.DataKeys[j]["ContactId"].ToString() + "'" + ","; } contactid1 = temp; EntityCollection chargePersonColl = GetServiceData("systemuser", "systemuserid", owner); // 负责人 Entity chargePersonCollEntity = chargePersonColl.Entities[];// 负责人(id) //负责人 string ownerid = chargePersonCollEntity["fullname"].ToString(); string yt_businessunit_company = chargePersonCollEntity.Contains("yt_businessunit_company") ? ((EntityReference)chargePersonCollEntity["yt_businessunit_company"]).Name : null; string yt_businessunit_territoryname = chargePersonCollEntity.Contains("yt_businessunit_territory") ? ((EntityReference)chargePersonCollEntity["yt_businessunit_territory"]).Name : null; string name = "联系人"; ) { ServiceEip(orgService, name, ownerid, yt_businessunit_company, yt_businessunit_territoryname, owner); } else { AlertMsg("请选择联系人"); } } static string eipTemplateId = string.Empty; static string eipCreatorName = string.Empty; static string eipUrl = string.Empty; //发起价值探索之旅EIP流程 public void ServiceEip(IOrganizationService service, string name, string ownerid, string yt_businessunit_company, string yt_businessunit_territoryname, string userid) { InitializeConfig(); EIPContact.ThirdPartyParameter sr = new EIPContact.ThirdPartyParameter(); EIPContact.ThirdPartyBean be = new EIPContact.ThirdPartyBean(); try { EIPContact.IThirdPartyWfServiceService eipService = new EIPContact.IThirdPartyWfServiceService(); eipService.Url = eipUrl; sr.subject = name; sr.templateId = eipTemplateId; sr.creatorName = GetUserEIPName(service, userid); sr.thirdSystemStart = "CRM"; // sr.modelName = "com.landray.kmss.km.itsm.model.KmItsmMain"; sr.submitStatus = "; Log.WriteLog(eipTemplateId); Log.WriteLog(eipUrl); Log.WriteLog(GetUserEIPName(service, userid)); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("<?xml version='1.0' encoding='UTF-8'?>"); strBuilder.Append("<java version='1.5.0' class='java.beans.XMLDecoder'>"); strBuilder.Append("<object class='java.util.HashMap'>"); strBuilder.Append("<void method='put'>"); strBuilder.Append("<string>ownerid</string>"); strBuilder.Append(" <string>" + ownerid + @"</string>"); strBuilder.Append(" </void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append(" <string>yt_businessunit_company</string>"); strBuilder.Append("<string>" + yt_businessunit_company + @"</string>"); strBuilder.Append(" </void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append(" <string>yt_businessunit_territoryname</string>"); strBuilder.Append("<string>" + yt_businessunit_territoryname + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append("<string>明细</string>"); strBuilder.Append("<object class='java.util.ArrayList'>"); foreach (GridViewRow item in this.gvContact.Rows) { strBuilder.Append(" <void method='add'>"); strBuilder.Append(" <object class='java.util.HashMap'>"); strBuilder.Append("<void method='put'>"); strBuilder.Append("<string>yt_vehicle_category</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lblcategory")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append(" <void method='put'>"); strBuilder.Append("<string>parentcustomerid</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lblcompany")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append(" <string>lastname</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lblname")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append("<string>yt_post</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lblpost")).Text.ToString() + @"</string>"); strBuilder.Append(" </void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append("<string>customertypecode</string>"); strBuilder.Append(" <string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lbltypecode")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append(" <string>gendercode</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lblgender")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append(" <void method='put'>"); strBuilder.Append(" <string>territorycode</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lblrole")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append("<string>mobilephone</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lblphone")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append("<string>yt_like</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lbllike")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append("<void method='put'>"); strBuilder.Append("<string>yt_brand_remark</string>"); strBuilder.Append("<string>" + ((System.Web.UI.WebControls.Label)item.FindControl("lblbrand")).Text.ToString() + @"</string>"); strBuilder.Append("</void>"); strBuilder.Append("</object>"); strBuilder.Append("</void>"); } strBuilder.Append("</object>"); strBuilder.Append("</void>"); strBuilder.Append("</object>"); strBuilder.Append("</java>"); sr.formDataXML = strBuilder.ToString(); Log.WriteLog("新建"); Log.WriteLog(sr.formDataXML); ThirdPartyBean bean = eipService.createWorkFlow(sr); Log.WriteLog(bean.modelId); Log.WriteLog(bean.flag); if (bean.flag.ToString() == "true") { ; j < gvContact.Rows.Count; j++) { string temp = gvContact.DataKeys[j]["ContactId"].ToString(); Entity contact = new Entity("contact"); ; contact["yt_eipid"] = bean.modelId; contact.Id = new Guid(temp); if (contact.Contains("yt_eipcount")) { contact[; } else { contact[; } service.Update(contact); } AlertMsg("发起价值探索之旅EIP流程成功"); } else { AlertMsg("发起价值探索之旅EIP流程错误"); } } catch (Exception ex) { Log.WriteLog(ex.Message); throw new Exception(ex.Message); } } #region 初始化参数 private static void InitializeConfig() { string crmDomainName = ""; string crmUserName = ""; string crmUserPassword = ""; string crmServiceUrl = ""; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("C:/YuTongCRMConfig/YuTongCRMConfig.xml"); XmlNode configNode = xmlDoc.SelectSingleNode("/YuTongCRMConfig"); foreach (XmlNode item in configNode.ChildNodes) { switch (item.Name) { case "CRMUserDomainName": crmDomainName = item.InnerText.Trim(); break; case "CRMUserName": crmUserName = item.InnerText.Trim(); break; case "CRMUserPassword": crmUserPassword = item.InnerText.Trim(); break; case "CRMServiceUrl": crmServiceUrl = item.InnerText.Trim(); break; case "EIPTemplateId4": eipTemplateId = item.InnerText.Trim(); break; case "EIPCreatorName": eipCreatorName = item.InnerText.Trim(); break; case "EIPUrl": eipUrl = item.InnerText.Trim(); break; } } crmServiceUrl += "/XRMServices/2011/Organization.svc"; Uri orgServiceUri = new Uri(crmServiceUrl); ClientCredentials credentials = new ClientCredentials(); credentials.Windows.ClientCredential = new System.Net.NetworkCredential(crmUserName, crmUserPassword, crmDomainName); OrganizationServiceProxy crmServiceProxy = new OrganizationServiceProxy(orgServiceUri, null, credentials, null); orgService = (IOrganizationService)crmServiceProxy; } #endregion #region 获取用户EIP名 /// <summary> /// 获取用户EIP名 /// </summary> /// <param name="userId"></param> /// <returns></returns> public string GetUserEIPName(IOrganizationService service, string userId) { using (OrganizationServiceContext orgContext = new OrganizationServiceContext(service)) { //查询出当前用户EIP用户名 string eipName = string.Empty; var qryService = from s in orgContext.CreateQuery("systemuser") where s["systemuserid"].Equals(userId) select s; var qryResults = qryService.ToList(); ) { eipName = qryResults[]["yt_eipname"].ToString(); } return eipName; } } #endregion private static EntityCollection GetData(string entityName, string attributeName, string attributeValue) { QueryByAttribute query = new QueryByAttribute(entityName);//"yt_part_purchase"); query.ColumnSet = new ColumnSet(true); query.AddAttributeValue(); query.AddAttributeValue(attributeName, attributeValue);//"yt_code", purchaseCode); return orgService.RetrieveMultiple(query); } private static EntityCollection GetServiceData(string entityName, string attributeName, string attributeValue) { QueryByAttribute query = new QueryByAttribute(entityName);//"yt_part_purchase"); query.ColumnSet = new ColumnSet(true); //query.AddAttributeValue("statecode", 0); query.AddAttributeValue(attributeName, attributeValue);//"yt_code", purchaseCode); return orgService.RetrieveMultiple(query); } /// <summary> /// 提示信息 /// </summary> /// <param name="msg"></param> void AlertMsg(string msg) { Page.ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>alert('" + msg + "')</script>"); } protected void BtnAdd_Click(object sender, EventArgs e) { string id = string.Empty; id = selcontactid.Value; if (!string.IsNullOrEmpty(id)) { string contactstr = "'" + id + "'"; DataTable dtContact = new DataTable(); dtContact = QueryData(contactstr); ) { ; i < dtContact.Rows.Count; i++) { DataRow dr = DT.NewRow(); dr["ContactId"] = dtContact.Rows[i]["ContactId"].ToString(); dr["LastName"] = dtContact.Rows[i]["LastName"].ToString(); dr["yt_post"] = dtContact.Rows[i]["yt_post"].ToString(); dr["yt_postname"] = dtContact.Rows[i]["yt_postname"].ToString(); dr["AccountRoleCode"] = dtContact.Rows[i]["AccountRoleCode"].ToString(); dr["AccountRoleCodename"] = dtContact.Rows[i]["AccountRoleCodename"].ToString(); dr["yt_attitude"] = dtContact.Rows[i]["yt_attitude"].ToString(); dr["yt_attitudename"] = dtContact.Rows[i]["yt_attitudename"].ToString(); dr["yt_brand_remark"] = dtContact.Rows[i]["yt_brand_remark"].ToString(); dr["MobilePhone"] = dtContact.Rows[i]["MobilePhone"].ToString(); dr["customertypecode"] = dtContact.Rows[i]["customertypecode"].ToString(); dr["gendercode"] = dtContact.Rows[i]["gendercode"].ToString(); dr["yt_vehicle_category"] = dtContact.Rows[i]["yt_vehicle_category"].ToString(); dr["name"] = dtContact.Rows[i]["name"].ToString(); DT.Rows.Add(dr); } } gvContact.DataSource = DT; gvContact.DataBind(); string temp = string.Empty; ; j < gvContact.Rows.Count; j++) { temp += "'" + gvContact.DataKeys[j]["ContactId"].ToString() + "'" + ","; } contactid1 = temp; } } protected void BtnDelete_Click(object sender, EventArgs e) { this.DT.Rows.Clear(); foreach (GridViewRow item in this.gvContact.Rows) { HtmlInputCheckBox cb = (HtmlInputCheckBox)item.FindControl("chk"); if (cb != null && !cb.Checked) { string id = ((HtmlInputCheckBox)item.FindControl("chk")).Value.ToString(); if (!string.IsNullOrWhiteSpace(id)) { Log.WriteLog(id); string contactstr = "'" + id + "'"; DataRow[] drSelected = this.DT.Select("ContactId='" + id + "'"); ) continue; #region DataRow dr = this.DT.NewRow(); dr["ContactId"] = id; dr["LastName"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblname")).Text.ToString(); dr["yt_postname"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblpost")).Text.ToString(); dr["AccountRoleCodename"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblrole")).Text.ToString(); dr["yt_attitudename"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblattitude")).Text.ToString(); dr["yt_brand_remark"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblbrand")).Text.ToString(); dr["MobilePhone"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblphone")).Text.ToString(); dr["customertypecode"] = ((System.Web.UI.WebControls.Label)item.FindControl("lbltypecode")).Text.ToString(); dr["gendercode"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblgender")).Text.ToString(); dr["yt_vehicle_category"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblcategory")).Text.ToString(); dr["name"] = ((System.Web.UI.WebControls.Label)item.FindControl("lblcompany")).Text.ToString(); this.DT.Rows.Add(dr); #endregion } } } gvContact.DataSource = this.DT; gvContact.DataBind(); string temp = string.Empty; ; j < gvContact.Rows.Count; j++) { temp += "'" + gvContact.DataKeys[j]["ContactId"].ToString() + "'" + ","; } contactid1 = temp; } protected void GvContact_PageIndexChanging(object sender, GridViewPageEventArgs e) { gvContact.PageIndex = e.NewPageIndex; gvContact.DataSource = DT.DefaultView; gvContact.DataBind(); } } }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ContactLookup.aspx.cs" Inherits="AccountPlan.ContactLookup" ValidateRequest="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>查找联系人</title> <style type="text/css"> #gvVehicle table td { width: 12px; } </style> <script type="text/javascript"> function CbxOnClick(obj) { var inputs = document.getElementById("<%=gvContact.ClientID%>").getElementsByTagName("input"); ; i < inputs.length; i++) { if (inputs[i].type == "checkbox") { inputs[i].checked = false; } } obj.checked = true; } function ConfirmItem() { var inputs = document.getElementById("<%=gvContact.ClientID%>").getElementsByTagName("input"); ; i < inputs.length; i++) { if (inputs[i].type == "checkbox" && inputs[i].checked == true) { var selects = document.getElementById("<%=gvContact.ClientID%>").getElementsByTagName("select"); var data = {}; var contact = {}; contact.id = selects[i].options[].value; contact.name = selects[i].options[].value; data.contact = contact; data.yt_duties = selects[i].options[].value; data.yt_role = selects[i].options[].value; data.yt_active = selects[i].options[].value; data.yt_brandpreference = selects[i].options[].value; data.yt_telephone = selects[i].options[].value; data.customertype = selects[i].options[].value; data.gender = selects[i].options[].value; data.company = selects[i].options[].value; data.category = selects[i].options[].value; window.returnValue = data; window.close(); } } } //回车,查询数据 function EnterKeyDown() { ) { document.getElementById("btnSearch").click(); } } //双击选中(关闭页面) function ADoubleClick(obj) { window.open("/main.aspx?etc=2&extraqs=%3f_gridType%3d2%26etc%3d2%26id%3d%257b" + obj.id + "%257d%26pagemode%3diframe%26preloadcache%3d1447931081302%26rskey%3d892563048&pagetype=entityrecord", "_blank", false); } //单击选择 function ASingleClick(obj) { //当前行只有一个input,故不判定是否为checkbox ]; var inputs = document.getElementById("<%=gvContact.ClientID%>").getElementsByTagName("input"); ; i < inputs.length; i++) { if (inputs[i].type == "checkbox") { inputs[i].checked = false; } } cbx.checked = true; } function cancel() { window.returnValue = null; window.close(); } </script> <base target="_self" /> </head> <body style="font-size: 12px; background:#E9EDF1;" onkeydown="EnterKeyDown()"> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <table style="width: 600px; margin-left: 30px;"> <tr> <td align="right"> 姓名:<asp:TextBox runat="></asp:TextBox> </td> <td> <asp:UpdatePanel ID="UpdatePanel2" runat="server"> <ContentTemplate> <asp:Button runat="server" Text="查找" ID="btnSearch" OnClick="BtnSearch_Click" /></ContentTemplate> </asp:UpdatePanel> </td> </tr> <tr> <td colspan="> <tr> <td colspan="> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:GridView runat="server" ID="gvContact" Width="630px" HeaderStyle-BackColor="#A7CDF0" AutoGenerateColumns=" onpageindexchanging="GvContact_PageIndexChanging"> <Columns> <asp:TemplateField ItemStyle-Width="20px"> <ItemTemplate> <select style="display: none"> <option value='<%#Eval("ContactId")%>'></option> <option value='<%#Eval("LastName")%>'></option> <option value='<%#Eval("yt_post")%>'></option> <option value='<%#Eval("AccountRoleCodename")%>'></option> <option value='<%#Eval("yt_like")%>'></option> <option value='<%#Eval("yt_brand_remark")%>'></option> <option value='<%#Eval("MobilePhone")%>'></option> <option value='<%#Eval("customertypecode")%>'></option> <option value='<%#Eval("gendercode")%>'></option> <option value='<%#Eval("name")%>'></option> <option value='<%#Eval("yt_vehicle_category")%>'></option> </select> <asp:CheckBox runat="server" ID="cbxVehicle" onclick="CbxOnClick(this)" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField ItemStyle-Width="100px" HeaderText="姓名"> <ItemTemplate> <a href="javascript:void(0);" onclick="ASingleClick(this)" ondblclick="ADoubleClick(this)" style="color: black" id="<%#Eval("ContactId")%>" > <%#Eval("LastName")%></a> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="yt_postname" HeaderText="工作职务" ItemStyle-Width="80px" /> <asp:BoundField DataField="AccountRoleCodename" HeaderText="决策角色" ItemStyle-Width="80px" /> <asp:BoundField DataField="yt_like" HeaderText="兴趣爱好" ItemStyle-Width="60px" /> <asp:BoundField DataField="yt_brand_remark" HeaderText="品牌偏好" ItemStyle-Width="80px" /> <asp:BoundField DataField="MobilePhone" HeaderText="联系方式" ItemStyle-Width="120px" /> <asp:BoundField DataField="customertypecode" HeaderText="民族" ItemStyle-Width="120px" /> <asp:BoundField DataField="gendercode" HeaderText="性别" ItemStyle-Width="120px" /> <asp:BoundField DataField="name" HeaderText="所属分公司" ItemStyle-Width="120px" /> <asp:BoundField DataField="yt_vehicle_category" HeaderText="客户类别" ItemStyle-Width="120px" /> </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> </td> </tr> </table> </form> <div style="position: absolute; right: 80px; bottom: 20px; height:30px; text-align:right;"> <input type="button" id="btnSelect" style="margin-right: 20px" onclick="ConfirmItem()" value="确定" /> <%-- <input type="button" onclick="cancel()" value="取消" />--%> </div> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.Data; using AccountPlan.BusinessLogic; namespace AccountPlan { public partial class ContactLookup : System.Web.UI.Page { protected string accountId; protected string contactId; protected DataTable dt; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { accountId = Request.QueryString["ownerid"].ToString(); contactId = Request.QueryString["contactid"].ToString(); contactId = contactId.Substring(, contactId.Length - ); BindGv(""); } catch (Exception ex) { throw new Exception(ex.Message); } } } void BindGv(string whereStr) { accountId = Request.QueryString["ownerid"].ToString(); contactId = Request.QueryString["contactid"].ToString(); contactId = contactId.Substring(, contactId.Length - ); string sql = @"SELECT cb.ContactId, cb.LastName, c.yt_post, post.name yt_postname, isnull(cb.AccountRoleCode,-1) AccountRoleCode, ar.name AccountRoleCodename, c.yt_like, c.yt_brand_remark, cb.MobilePhone, ct.name customertypecode, gr.name gendercode, m.name yt_vehicle_category , ac.name FROM ContactExtensionBase c INNER JOIN ContactBase cb ON c.ContactId = cb.ContactId LEFT OUTER JOIN account ac WITH(NOLOCK) ON cb.parentcustomerid = ac.accountid OUTER APPLY dbo.fn_GetPickListName('Contact','yt_post',c.yt_post) post OUTER APPLY dbo.fn_GetPickListName('Contact','AccountRoleCode',cb.AccountRoleCode) ar OUTER APPLY dbo.fn_GetPickListName('Contact','gendercode',cb.gendercode) gr OUTER APPLY dbo.fn_GetPickListName('Contact','customertypecode',cb.customertypecode) ct OUTER APPLY dbo.fn_GetPickListName('account','yt_vehicle_category',yt_vehicle_category) m where cb.StateCode = 0 and cb.ownerid = '" + accountId + "' and cb.contactid not in (" + contactId + ") " + whereStr; DataSet ds = SqlHelper.Query(sql); if (ds != null) { dt = ds.Tables[]; gvContact.DataSource = ds.Tables[].DefaultView; gvContact.DataBind(); } } protected void BtnSearch_Click(object sender, EventArgs e) { StringBuilder sbWhere = new StringBuilder(); string name = txtName.Text.Trim(); if (name != "") { sbWhere.Append(" and cb.LastName like '%" + name + "%'"); } BindGv(sbWhere.ToString()); } protected void GvContact_PageIndexChanging(object sender, GridViewPageEventArgs e) { StringBuilder sbWhere = new StringBuilder(); string name = txtName.Text.Trim(); if (name != "") { sbWhere.Append(" and cb.LastName like '%" + name + "%'"); } BindGv(sbWhere.ToString()); gvContact.PageIndex = e.NewPageIndex; gvContact.DataSource = dt.DefaultView; gvContact.DataBind(); } } }
C# GridView弹出窗口新增行 删除行的更多相关文章
- extjs_04_grid(弹出窗口&行编辑器 CRUD数据)
1.弹出窗口(添加.删除) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWRhbV93enM=/font/5a6L5L2T/fontsize/400/f ...
- 让IE8在win7下面能显示使用window.showmodaldialog弹出窗口的地址状态栏
问题来源:最近又要对老的系统进行改善,由于用到了window.showmodaldialog这个方法弹出窗口,比如从主界面弹出新增或者修改窗口,如下图所示,显示没有地址栏,进行代码修改还要找到相应的文 ...
- [转]js来弹出窗口的详细说明
1.警告对话框 <script> alert("警告文字") </script> 2.确认对话框 <script> confirm(" ...
- 在HTML网页中设置弹出窗口的办法
[1.最基本的弹出窗口代码] 其实代码非常简单: <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.h ...
- JS弹出窗口代码大全(详细整理)
1.弹启一个全屏窗口 复制代码代码如下: <html> <body http://www.jb51.net','脚本之家','fullscreen');">; < ...
- 深入浅出ExtJS 第七章 弹出窗口
7.1 Ext.MessageBox 7.1 Ext.MessageBox //Ext.MessageBox为我们提供的alert/confirm/prompt等完全可以代替浏览器原生; 7.1.1 ...
- asp .NET弹出窗口 汇总(精华,麒麟创想)
asp .NET弹出窗口 汇总(精华,麒麟创想) 注://关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javas ...
- EPUB弹出窗口式脚注
网上搜到一些国学典籍的EPUB版,虽有古人的注解,但正文和注解混排在一起,当我只想迅速读正文的时候比较碍眼.于是研究了一下 EPUB3 中有关脚注(footnote)的规格定义,写了一个 Python ...
- [置顶] html学习笔记,锚点,超链接,table布局,表头,h,sub,blockquote,ul,li,ol.dl,加入收藏,打印,弹出窗口
<a name="shouye"></a> <strong>strong加粗</strong> <br> 没有加粗 &l ...
随机推荐
- 什么是dandy 风格_百度知道
什么是dandy 风格_百度知道 什么是dandy 风格 2010-06-21 10:56 平ping123 | 分类:服装/首饰 | 浏览11257次 题谢谢 有没有比 ...
- 从ora10g 刷数据到 8I基本操作步骤
从ora10g 刷数据到 8I基本操作步骤 master :oracle 10g snapshot site: oralce 8i 在oracle 8i 中物化视图称为快照,oracle 8i建快照的 ...
- x/nfu-用gdb查看内存
用gdb查看内存 2007-12-08 12:43 用gdb查看内存 格式: x /nfu <addr> 说明x 是 examine 的缩写 n表示要显示的内存单元的个数 f表示显示方式, ...
- odd number、 even number
odd number 奇数 even number 偶数
- #include <boost/asio.hpp>
TCP服务端和客户端 TCP服务端 #include <iostream> #include <stdlib.h> #include <boost/asio.hpp> ...
- phonegap开发app中踩过的那些坑
把遇到的问题列出来,假设有解决方式的,偶也会写下来.假设大家有更好解决方法的.欢迎留言噢 phonegap 2.9无法触发deviceready事件 亲们能够看下控制台有木有报错.假设有提示cordo ...
- Activity(三)
常用控件 EditView.TextView.Button 设置layout,在fragment_main.xml配置控件 配置可编辑文本控件factorOne.factorTwo,显示文本控件sym ...
- 使用repeater开发出现 回发或回调参数无效 的问题
我的就是因为没有加IsPostBack,导致在页面每次刷新时都生成一遍,造成重复绑定Repeater控件,以致事件验证出错,加上就好了 protected void Page_Load(object ...
- Spring-----事务配置的五种方式
转载自:http://blog.csdn.net/hekewangzi/article/details/51712821
- Hql参数占位符使用(转+整理)
在Hibernate 4版本中,对于Hql有一点点改变,如果你还是按照以前的方式去编写HQL Query query = sessionFactory.openSession().createQuer ...