如何在实体的操作工具栏中自定义按钮,并获取列表某项的GUID
2010-06-30 17:44
411 查看
![](http://hi.csdn.net/attachment/201006/30/0_12778910269KlA.gif)
屏幕区域名称如下所示:
1. 标准工具栏
2. 导航窗格
3. 应用程序标题栏
4. 操作工具栏
5. 视图筛选器
6. 列表
本文主要针对“4. 操作工具栏”中自定义一个按钮,然后点击按钮后,获取到“6. 列表”中具体的某一项的GUID,通过GUID可以对该项进行其他操作。因为想要对列表中具体的某一项操作,目前笔者只知道用GUID去检索可以做到。
1. 通过导出ISV.Config文件,在“联系人(contact)”实体中添加一个Button。作用是调用自定义弹出对话框Temp.aspx页面,如下:
<Entity name="contact">
<!-- The Contact Tool Bar -->
<Grid>
<MenuBar>
<Buttons>
<Button Icon="/_imgs/ico_16_112.gif" Url="http://192.168.5.233/ISV/MyApp/Temp.aspx" PassParams="1" WinParams="" WinMode="2">
<Titles>
<Title LCID="1033" Text="New Talk" />
</Titles>
<ToolTips>
<ToolTip LCID="1033" Text="Create new talk."/>
</ToolTips>
</Button>
<ToolBarSpacer/>
</Buttons>
</MenuBar>
</Grid>
</Entity>
2. 接着就是在Temp.aspx页面中捕获用户当前在列表中选中项的GUID值,SDK给出的例子如下:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Temp</title>
<script type="text/jscript">
function listselecteditems()
{
var sGUIDValues = "";
var selectedValues;
var placeholder = document.getElementById("test");
if (window.dialogArguments && window.dialogArguments.length > 0)
{
selectedValues = new Array(window.dialogArguments.length -1);
}
else
{
placeholder.innerText = "window.dialogArguments is not available.";
return
}
selectedValues = window.dialogArguments;
if (selectedValues != null)
{
for (i=0; i < selectedValues.length; i++)
{
sGUIDValues += selectedValues[i] +"/n";
}
alert(sGUIDValues);
self.close();
window.open("http://192.168.5.233:83/Default.aspx?Guid=" + sGUIDValues, "BizPbxWebDemo", "resizable=yes,menubar=yes,toolbar=yes,location=yes,directories=yes,scrollbars=yes"); // 把GUID作为参数传递到自定义页面
}
else
{
placeholder.innerText = "No records were selected.";
}
}
</script>
</head>
<body onload="listselecteditems()">
<form id="form1" runat="server">
<div id="test">
</div>
</form>
</body>
</html>
3. 接着就是通过GUID检索自己需要的信息了,加入需要联系人的手机号码,可以这样实现:
string sGuid = Request.QueryString["Guid"].ToString();
Response.Write("<script type='text/javascript'>alert('GUID:" + sGuid + "');</script>");
CrmService service = CrmServiceUtility.GetCrmService("http://192.168.5.233", "crm");
ColumnSet cols = new ColumnSet();
cols.Attributes = new string[] { "mobilephone" };
TargetRetrieveContact target = new TargetRetrieveContact();
target.EntityId = new Guid(sGuid);
RetrieveRequest retrieve = new RetrieveRequest();
retrieve.Target = target;
retrieve.ColumnSet = cols;
RetrieveResponse retrieved = (RetrieveResponse)service.Execute(retrieve);
contact con = (contact)retrieved.BusinessEntity;
string sMobile = con.mobilephone;// 这里的手机号码就是最终需要的
相关文章推荐
- JQuery easyUi datagrid 中 自定义editor作为列表操作按钮列
- 自定义配置UEditor 工具栏上的按钮列表
- JQuery easyUi datagrid 中 自定义editor作为列表操作按钮列
- (转)FCKeditor如何自定义增加工具栏按钮
- 如何简单快速获取SharePoint列表的GUID
- 如何简单快速获取SharePoint列表的GUID
- DataSet&DataTable如何绑定下拉列表控件获取不重复的值,如何添加一列自定义文字,并在下拉列表控件中显示自定义文字[winform学习实例]
- JQuery easyUi datagrid 中 自定义editor作为列表操作按钮列
- 如何获取并操作JavaBean属性
- 信息发布类网站后台界面设计一点思考(列表和操作按钮)
- Liferay 中struts2如何获取portlet 及相关操作
- 详解Python如何获取列表(List)的中位数
- easyui datagrid自定义按钮列,即最后面的操作列
- javascript如何操作HTML下拉列表标签
- ansible动态inventory 获取自定义的主机列表
- 泛型方法--获取业务实体和业务实体列表
- MFC 如何将自定义按钮,添加到对话框的成员变量中?
- 如何获取WSS列表视图的中文字段
- 帝国cms调用栏目自定义字段(栏目简介)如何操作