您好我正在使用以下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>
答案 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"
添加到asp.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) {