Załóżmy, że mam Devxpress ASPxTextBox, którego id jest "instrument". Chcę uzyskać dostęp do wartości pola tekstowego po stronie klienta. Więc muszę napisać javascript.Jak uzyskać dostęp do wartości ASPxTextBox z JavaScript
Jeśli to pole tekstowe asp normalne, mógłbym uzyskać pole tekstowe poprzez pisanie kodu jak var instrumentElement = document.getElementById('<%=instrument.ClientID%>')
Ale takie samo podejście nie pracuje dla DevExpress w polu tekstowym.
Jak mogę uzyskać dostęp do ASPxTextBox? Używam Developer Express w wersji 7.2.
Oto fragment kodu dokładniejsze -
<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>
To był kod ASP. Odpowiedni kod JavaScript jest następujący:
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;
}
Po prostu zdałem sobie sprawę, że funkcja klienta GetValue() mogła nie być dostępna w Twojej wersji. Jeśli nie, możesz wypróbować MyTextBox.GetText(). – AGoodDisplayName
Nienawidzę rzeczy 'ClientInstanceName'. Działa niezawodnie tylko w przypadku prymitywnych, niezagnieżdżonych kontrolek. Zalecam zamiast tego użycie wyszukiwania ClientID. (Wszystkie kontrolki DX "dodają się" do 'okna' przez ich ID klienta:' okno [theClientId] .SetText (..) ') –