2012-10-10 3 views
0

사용자 정의 웹 컨트롤 * .ascx 파일이 있습니다. 자바 스크립트를 사용하여 gridview에서 사용자가 업데이트 버튼을 클릭하는 것을 시뮬레이션하려고합니다.자바 스크립트 gridview에서 사용자가 udate 버튼을 클릭하여 시뮬레이션

은 "LinkButton1"
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"> 

     $(document).keypress(function (e) { 
      if (e.which == 13) { 
       document.getElementById("LinkButton1").click(); 
      } 
     }); 

    </script> 

이 템플릿 필드에 있습니다 : I가 없거나 잘못을하고있는 중이 야 무엇

<asp:TemplateField ShowHeader="False"> 
         <EditItemTemplate> 
          <asp:LinkButton ID="LinkButton1" runat="server" onKeyPress="" UseSubmitBehavior="True" CausesValidation="True" 
           CommandName="Update" TabIndex="13" Text="Update" ></asp:LinkButton> 
          &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
           CommandName="Cancel" Text="Cancel"></asp:LinkButton> 
         </EditItemTemplate> 
         <ItemTemplate> 

내의 .ascx 페이지의 상단에이 스크립트를?

답변

0

으로 시도 할 수 있습니다.

이 사용할 수 ..

$(document).keypress(function (e) { 
     if (e.which == 13) { 
    simulate(document.getElementById("LinkButton1"), "click"); 

     } 
    }); 

시뮬레이션 기능 (요소 EVENTNAME) { VAR 옵션 = 연장 (defaultOptions, 인수 [2] || {}); var oEvent, eventType = null; (소스 VAR 속성) 대상 [등록]의

기능 확장

for (var name in eventMatchers) { 
    if (eventMatchers[name].test(eventName)) { eventType = name; break; } 
} 

if (!eventType) 
    throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported'); 

if (document.createEvent) { 
    oEvent = document.createEvent(eventType); 
    if (eventType == 'HTMLEvents') { 
     oEvent.initEvent(eventName, options.bubbles, options.cancelable); 
    } 
    else { 
     oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView, 
      options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY, 
      options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element); 
    } 
    element.dispatchEvent(oEvent); 
} 
else { 
    options.clientX = options.pointerX; 
    options.clientY = options.pointerY; 
    var evt = document.createEventObject(); 
    oEvent = extend(evt, options); 
    element.fireEvent('on' + eventName, oEvent); 
} 
return element; 

} (목적지, 소스) { 소스 [특성] =; 반송 목적지; }

var에 eventMatchers = { 'HTMLEvents'/^(? 부하 | 언로드 | 취소 | 오류 | 선택 | 변화 | 제출 | 재설정 | 초점 | 흐림 | 크기를 조정 | 스크롤) $/ 'MouseEvent는 ':/^ (?: dblclick | mouse (? : down | up | over | move | out)) $/ };

VAR의 defaultOptions = { pointerX : 0 pointerY : 0 버튼 : 0 ctrlKey : 거짓 Alt 키 : 거짓 shiftKey : 거짓 metaKey : 거짓 거품 : 사실, 캔슬 : true };

+0

편집기가 분명히 서식을 엉망으로 만듭니다. 현재 컨트롤 ID에 정적 ID를 렌더링하고 있습니까? –

+0

예, ID는 정적입니다. 방금 디자이너가 C# 코드가없는 표를 만드는 데 사용했습니다. – briskovich

+0

그 중 하나도 작동하지 않았습니다. 나는 너무 붙어있다 !! – briskovich

0

당신은 클릭 만의 LinkButton로 렌더링되는 것입니다 앵커 아니 부착 된 이벤트를 작동하기 때문에 작동하지 않습니다

document.getElementById('<%# ((GridViewRow)Container).FindControl("LinkButton2").ClientID %>').click(); 
+0

나는 그것을 시도했지만 작동하지 않았다. "GridViewRow"는 gridview의 ID 여야합니까? – briskovich

+0

귀하의 컨트롤 linkbutton에 함수를 호출하는 것은 id가 아닌 링크입니다. http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.gridviewrow%28v=vs.80% 29.aspx –

관련 문제