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

时间:2013-11-03 12:07:08

标签: sharepoint-2013 custom-field-type

我创建了一个自定义字段类型,其中包含一个文本框和一个按钮。

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

点击按钮,我调用一个javascript函数(HandlePopupResult)将resultValue设置为textbox。

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

如果我将ClientIDMode的{​​{1}}设置为'TextField',则此代码有效,但当我将其设置为static时,AutoID功能无法使用HandlePopupResult。工作。

我设置了ClientIDMode="AutoId"的{​​{1}}并使用了

TextField

然后我得到document.getElementById('<%=TextField.ClientID%>').value = resultValue;

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

我的UnhandebleExceptionTextField CleintIDMode并且我可以设置textfield的值,这是必要的 我很感激任何建议。

1 个答案:

答案 0 :(得分:2)

我搜索了很多,最后找到了这个样本

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

这个示例通过获取控件clientId的新方法解决了我的问题。