假设我有一个ID为“instrument”的DevExpress ASPxTextBox。我想在客户端访问文本框的值。因此我需要编写一个javascript。
如果它是一个普通的asp文本框,我可以通过编写如下代码来访问该文本框:var instrumentElement = document.getElementById('<%=instrument.ClientID%>')
但同样的方法对DevExpress的文本框不起作用。
如何访问ASPxTextBox?我使用的是Developer Express 7.2版。
下面是一些更完整的代码片段-
<div style="display: inline; float: left;">
<dxe:ASPxTextBox ID="InstrumentQuantity" runat="server" Width="170px">
</dxe:ASPxTextBox>
</div>
<div style="display: inline; float: left;" onclick="incOrDecQty(0);">
<asp:ImageButton ID="decrementQuantity" runat="server"
Height="16px" Width="16px" ImageUrl="~/images/left.png"
AlternateText="Decrease Quantity" PostBackUrl="javascript:void(0);"/>
</div>
<div onclick="incOrDecQty(1);">
<asp:ImageButton ID="incrementQuantity" runat="server"
AlternateText="Increase Quantity" ImageUrl="~/images/right.png"
Height="16px" Width="16px" PostBackUrl="javascript:void(0);" />
</div>
这就是ASP代码,对应的Javascript如下:
function incOrDecQty()
{
var element = document.getElementById('<%=InstrumentQuantity.ClientID%>');
var lotSize = parseInt(document.getElementById('<%=LotSize.ClientID%>')
.innerHTML, 10);
var currentValue = parseInt(element.value,10);
if(arguments[0] == 1)
currentValue += lotSize;
else if((currentValue - lotSize) >= 0 )
currentValue -= lotSize;
element.value= currentValue;
}
4条答案
按热度按时间au9on6nz1#
您可以在AspxTextBox上设定ClientInstanceName属性。
客户端:
devexpress文档有一些关于客户端脚本的很好的信息。转到这个link,点击Reference,然后点击菜单上的DevExpress.Web.ASPxEditers.Scripts。
wmtdaxz32#
以下是ASPxTextBox上的所有客户端方法和事件。
http://www.devexpress.com/Help/?document=ASPxEditors/DevExpressWebASPxEditorsScriptsASPxClientTextBox_ctortopic.htm
sczxawaw3#
可能是第三方文本框没有使用ClientID。您可以尝试使用UniqueID,尽管这可能不是一个全局可接受的修复程序(可能不是在所有浏览器中都有效)。
wpcxdonn4#
这种获取客户端DevExpress ASPxClientTextBox的方法对我很有效:
基于以下解决方案:https://stackoverflow.com/a/44251251/