2012-10-05 7 views
0

나는 C# dot net에서 화면을 만들었습니다. 여기에는 열어야하는 하이퍼 링크 필드의 clik에서 일부 쿼리 문자열 값이 포함 된 하이퍼 링크 필드가 들어 있습니다. 그러나 잘 작동하는 팝업 창은 주소창이나 메뉴 항목이 특정 크기 여야한다는 팝업창에 표시되도록하지 않으려 고합니다. 아무도 그 방법을 알려주지 못합니다.주소 및 메뉴 모음이없는 팝업 창 gridview의 하이퍼 링크 클릭시

아래 코드를 사용하고 있지만 창의 크기가 변경되고 메뉴가 숨겨지지 않습니다. 또한 처음 팝업 창이 전체 크기로로드 된 다음 지정된 크기로 변경됩니다.

<asp:HyperLinkField DataNavigateUrlFields="FileName" DataTextField="FileName" 
Target="_blank" DataNavigateUrlFormatString="javascript:var NewWin=window.open 
('abc.aspx?EMPId={0}',null,'width=800,height=200,top=100,left=100,scrollbars=no, 
directories=no,status=no,toolbar=no,resizable=no');"HeaderText="EMPId"> 

</asp:HyperLinkField> 

또한, 난하지만 난 내하는 LinkButton에 클릭에 트리거됩니다 URL에 그리드의 rowdatabound에 쿼리 문자열을 추가하는 요구 사항을 가지고 창이 열려 얻을 팝업이 팝업 윈도우가 제대로 작동하는하는 LinkButton을 사용할 수 있습니다 그러나 나는 아래 코드를 사용하여 그렇게 할 수 없다.

protected void grdDisplayResult_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 

if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
HyperLink hyperlink = (HyperLink)e.Row.Cells[2].Controls[0]; 
Label lblRowNumber = ((Label)e.Row.FindControl("lblRowNum")); 
hyperlink.NavigateUrl += "&RowNum=" + lblRowNumber.Text; 
} 
} 

만약 내가 그 중 하나에 대한 해결책을 얻는다면 큰 도움이 될 것입니다.

답변

0

자바 스크립트 함수 &을 호출하여이 문제를 해결할 수 있습니다. gridview &의 RowDataBound 이벤트를 사용하여 제어 서버 측을 찾아 팝업을 열기 위해 클라이언트 측 이벤트를 첨부 할 수 있습니다. 거기에서 Eval &을 사용하여 함수에 매개 변수를 전달하면 원하는 쿼리 문자열 값이있는 팝업이 열립니다. 나는 내가하는 LinkButton에 문제가 있지만 원하는대로 당신의 gridview의 RowDataBound 이벤트 내부 서버 측에 영문

<script language="text/javascript"> 
    function OpenPopup(id,name) 
    { 
      window.open('myWindow.aspx?id='+id+'&name='+name,'_blank',width=800,height=200,top=100,left=100,scrollbars=no,menubar=no,directories=no,status=no,toolbar=no,resizable=no,url=no'); 
    } 
    </script> 

에이 같은 뭔가

if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      LinkButton myLinkBtn= (LinkButton)e.Row.FindControl("yourControlid"); 
      if(myLinkBtn !=null) 
      { 
       myLinkBtn.Attributes.add('onclick','javascript:OpenPopup('"+ Eval(e.row.DataItem,"yourDbField1")+ "','"+ Eval(e.row.DataItem,"yourDbField2")+ "');return false;"); 
      } 
     } 
0

하이퍼 링크 대신 링크 버튼을 사용할 수 있습니다.

+0

안녕 링크 버튼을 나를 위해 노력하고 있으며 팝업 창을 열고 어디 나는 하이퍼 링크 필드에서 할 수있는 다른 (비 데이터베이스 값) 쿼리를 추가 할 수 없습니다. – user1717270

+0

올바르게 이해하면 RowDataBound에서이 작업을 수행 할 필요가 없습니다. – urlreader

+0

처럼 할 수 있습니다. RowDataBound에서이 작업을 수행 할 필요가 없습니다. 너는 이렇게 할 수있다. 그런 다음 OnCommand에서 RowNum을 가져온 다음 쿼리 문자열을 사용하여 응답을 새 페이지로 리디렉션합니다. lblRowNum 필드에 바인딩되어 있다고 가정합니다. 아니, 여전히 .Text를 전달할 수 있습니다. \t \t \t \t

\t \t \t \t \t Delete \t \t \t
\t \t \t \t \t \t urlreader

0

대신 asp:Hyperlink

그리드의 HTMLAnchor를 사용해보십시오 :

<asp:TemplateField HeaderText="Options"> 
    <ItemTemplate> 
     <a href="javascript:void(0);" id="aFooLink" runat="server"> 
     ClickMeDamnit</a> 
    </ItemTemplate> 
</asp:TemplateField> 

코드 숨김 :

protected void grdDisplayResult_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     HyperLink aFooLink = (HyperLink)e.Row.Cells[2].Controls[0]; 
     aFooLink.Attributes.Add("onclick", "window.open('abc.aspx?EMPId=0','window','toolbar=no, menubar=no, resizable=yes,location=no,center:no;height=200px,width=300px,Top=1500,left=1500;statusbar:no;');");    
    } 
} 

이 당신을 위해 작동 바랍니다.

+0

안녕 Mayank, 당신의 답장을 보내 주셔서 감사합니다 그러나 나는이 칼럼에서 데이터를 바인딩해야하는 IC 데이터베이스에서오고 ... 잘 작동할까요? – user1717270

관련 문제