SharePoint2013自定义字段类型:当文本框的ClientIDMode设置为AutoID时,getElementById不起作用

问题描述:

我创建了具有一个文本框和一个按钮的自定义字段类型。SharePoint2013自定义字段类型:当文本框的ClientIDMode设置为AutoID时,getElementById不起作用

<asp:TextBox ID="TextField" runat="server" ReadOnly="true" ClientIDMode="Static"/> 
<asp:Button ID="TreeButton" Text="..." runat="server" onclientclick="HandlePopupResult();" /> 

on button click,我调用一个javascript函数(HandlePopupResult)来设置一个resultValue为文本框。

function HandlePopupResult(resultValue) { 
     document.getElementById('TextField').value = resultValue; } 

如果我设置的'TextField'ClientIDModestatic,这个代码工作,但是当我将它设置为AutoIDHandlePopupResult功能不起作用。

我设置ClientIDMode="AutoId"TextField和使用

document.getElementById('<%=TextField.ClientID%>').value = resultValue; 

后来我UnhandebleException

尝试浏览有一个字段类型我的自定义字段中的每个列表NewForm。

这是necessery我TextField CleintIDModeAutoId,我可以设置文本框
的价值我将不胜感激任何意见。

我搜索了很多,终于发现这个样本

http://bernado-nguyen-hoan.com/2011/11/07/walkthrough-custom-field-type-for-uploading-and-displaying-images-in-sharepoint-2010-lists/

这个样本通过获取控制的clientId的新方法解决我的问题。