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 ...
随机推荐
- 2.2.2 胸腰差和胸臀差的应用_米人NOONE_新浪博客
2.2.2 胸腰差和胸臀差的应用_米人NOONE_新浪博客 腰差和胸臀差的应用(2009-06-16 19:24:57)转载▼标签:校园 前面已经对这两个概念作了简单的讲解.这两个概 ...
- logback.xml配置详解
先附上本文分析用的例子: <?xml version="1.0" encoding="UTF-8" ?> <configuration> ...
- OAuth2.0认证介绍
OAuth2.0鉴权 返回 目录 [隐藏] 1 腾讯微博OAuth2.0认证介绍 2 获取accesstoken的两种方式 2.1 1.Authorization code grant 2.1.1 第 ...
- ThreadLocal 在web环境下使用的边界问题
ThreadLocal 相关分析,请查看http://wangxinchun.iteye.com/blog/1884228 另外一个必须要提的点是: ThreadLocal在线程池环境下的使用. 比如 ...
- linode最新试用(购买)流程
最新linode官网www.linode.com可以免费试用7天,但是需要你的身份认证 第一步:注册一个linode账号email填写国内的163.126.qq邮箱是不能认证的,这里可以填写gmail ...
- SWFUpload的使用及其注意事项
SWFUpload的使用: 添加Jquery swfuploaad.js handler.js文件 配置参数: upload_url:文件将要被传到的处理程序 post_params:{“”: ...
- 查看当前支持的MySQL字符集的命令
查看不同的MySQL字符集有不同的方法,下面介绍的命令用于查看当前支持的MySQL字符集,希望对您学习MySQL字符集能有所帮助. mysql> show char set; +-------- ...
- Java 四种线程池的使用
java线程线程池监控 Java通过Executors提供四种线程池,分别为: newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收 ...
- 算法竞赛中G++编译器的编译指令简单说明
算法竞赛使用的在线判题平台在FAQ会给出提交的代码是通过什么指令进行编译的.比如hustoj给出的c++编译指令通常是: C++: g++ Main.cc -o Main -fno-asm -O2 - ...
- 快速学习javascript对象-遍历对象
为了方便了解每个javascript对象包含的方法,我写一个函数. function GetCollection(obj){ try{ if(obj){ var sType=""; ...