前言:
今天终于把Clone Entity的代码写完了。可能还有一些问题。主要是不能一些栏位的值后续的栏位可能用不上.
技术关键点:
1.__doPostBack('<%this.Button1.ClientID%>','')实现开启页面以后自动点击按钮的功能。
2.MS Crm是用SQL2005对.net framework 3.5的功能有一些并不好.UpdatePanel没有用上。所以没有动画效果.
3.终于知道怎么只编译单一的网页,还有就是发布时会删除发布目录内的内容。要小心一些.
4.javascript执行时机会慢于Page_Load,不知道window.onload是在什么时机调用的.会先于Page_Load还是后于window.onload.
5.我是在Page_Load时注册一段script来实现我在window.onload要执行的代码。才实现自动点击按钮的功能.
6.问个问题就是MS如何实现动态加载网页的。尤其是他的变量和javascript那部分还是不太理解。可能还是要看一下.本来我还想模仿一个MS的办法,但最终还是放弃了.
7.取父窗口内容的代码还是比较有用的应该要记下来,留备下次使用.
8.Callback还没有试出来,要试试Callback Events的网页的用法.
附一部分代码.
<script language='javascript' type="text/javascript">
var IS_PATHBASEDURLS = false;
</script>
<script type="text/javascript" src=http://tech.ddvip.com/2009-05/"/_static/_common/scripts/global.js"></script>
<script language='javascript' type="text/javascript">
var _isInitialLoad = true;
function getParentDocument()
{
if (
(window.open_PB_PB_PB_PB_PB_PB_PBer != null) &&
(window.open_PB_PB_PB_PB_PB_PB_PBer.parent != null) &&
(window.open_PB_PB_PB_PB_PB_PB_PBer.parent.document != null)
) {
//This is the parent form
var parentDoc = window.open_PB_PB_PB_PB_PB_PB_PBer.document;
return parentDoc ;
}
}
function getSelectedOpportunityId()
{
var parentForm=getParentDocument ();
if (parentForm ==null)
return null;
// get array of selected records
var a = parentForm.all['crmGrid'].InnerGrid.SelectedRecords;
var selectedItems = new Array(a.length);
for (var i=0; i < a.length; i++)
{
selectedItems = a[0];
}
var oId = selectedItems[0];
return oId ;
}
function pageLoad(sender, args)
{
if(_isInitialLoad)
{
_isInitialLoad = false;
var oId=getSelectedOpportunityId();
if (oId ==null)
oId ="{2ED292E9-2DB2-DD11-9109-002215572EEF}";
var buton=document.getElementById ("txtFormId");
buton.value=oId ;
?// simulate a button click by forcing the postback
// causing the updatepanel to update
__doPostBack('<%= this.Button1.ClientID %>','');
}
function LookUpStock()
{
var oId=getSelectedOpportunityId();
if (oId ==null)
oId ="{2ED292E9-2DB2-DD11-9109-002215572EEF}";
l
var buton=document.getElementById ("txtFormId");
buton.value=oId ;
CallServer(oId,null);
//__doPostBack('<%= this.Button1.ClientID %>','');