更改TextBox格式时,Javascript代码不会运行

时间:2016-01-15 20:53:13

标签: javascript c# jquery asp.net gridview

您好我正在使用以下java脚本代码在asp grid-view

中进行一些计算 如果我在网格视图中更改文本框格式

,代码将无法运行

例如

function TestGUI
clc

hfigure  = figure('Position',[300 300 300 100],'Units','normalized','name','MyFigure');

handles.Edit1= uicontrol('Style','edit','String','','Position',[40 50 50 30]);
handles.Edit2= uicontrol('Style','edit','String','','Position',[100 50 50 30]);
handles.SnapShot= uicontrol('Style','push','String','Snapshot','Position',[160 50 70 30],'Callback',@(s,e) SnapShot_callback);

guidata(hfigure,handles);

%// Callback for button 1
    function SnapShot_callback
        handles = guidata(hfigure);

        %// Double entry from edit box 1. (do whatever you want)         
        x = str2double(get(handles.Edit1,'String'));

        NewX = 2*x;
        set(handles.Edit2,'String',NewX);

        %// Take the screenshot!
        F = getframe(gcf);

        figure()
        imshow(F.cdata); %// Image data is in F.cdata. You can replace by imwrite(F.cdata,...)

        %// Update handles structure.
        guidata(hfigure,handles);
    end
end

除了代码运行完美

javascript代码

<ItemTemplate>
<asp:TextBox ID="txtCalcCommision" TextMode="Number" placeholder="Eenter Commision" runat="server" CssClass="form-control"  ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>

2 个答案:

答案 0 :(得分:0)

ClientIDMode="Static"添加到文本框中。除非您将ClientIDMode设置为“Static”,否则ASP.NET将在呈现页面时更改ID。

您是否尝试在keyup函数中添加debugger;行?它可能是命中行,但函数中的代码运行不正常。

[id*=GvProducts]这不包含在您提供的HTML中。我无法确定这是否会影响CSS选择器找到您的文本框控件。

<ItemTemplate>假设这来自转发器...在这种情况下,您最好使用$("input.form-control")来查找控件。当它在转发器中时,ASP.NET将做很多事情以使ID独特化。

答案 1 :(得分:0)

选项1:

更改:

 $("[id*=GvProducts]input[type=text][id*=txtCalc]").on('keyup', (function (e) {

 $("[id$=txtCalcCommision]").on('keyup', (function (e) {

由于id是唯一的,因此使用选择器的简单结束将完成这项工作。

选项2:

由于你没有使用@Nick提到的ClientIDMode="Static",你需要将服务器生成的id作为选择器ID。

$("<%=txtCalcCommision.ClientID%>").on('keyup', (function (e) {

选项3:

ClientIDMode="Static"添加到a​​sp.net控件:

<asp:TextBox ID="txtCalcCommision"的ClientIDMode =&#34;静态&#34; TextMode="Number" placeholder="Eenter Commision" runat="server" CssClass="form-control" ></asp:TextBox>

$("#txtCalcCommision").on('keyup', (function (e) {