0

いくつかのクエリ文字列値を含むハイパーリンク フィールドを含む検索画面がある C# ドット ネットで画面を開発しています。ハイパーリンク フィールドをクリックすると、正常に動作しているポップアップ ウィンドウを開く必要がありますが、アドレス バーやメニューは必要ありません。ポップアップウィンドウに表示されるアイテムもサイズが特定されている必要があります。誰でもそれを達成する方法を教えてください。

以下のコードを使用していますが、ウィンドウのサイズを変更するだけで、メニューなどを非表示にすることはできません。さらに、最初のポップアップウィンドウがフルサイズで読み込まれ、指定したサイズに変更されます。

<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>

また、このポップアップ ウィンドウが正常に機能しているリンクボタンを使用することもできますが、グリッドの行データ バウンドにクエリ文字列を URL に追加する必要があります。以下のコードを使用してください。

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;
}
} 

それらのいずれかの解決策が得られれば、非常に役立ちます。

4

3 に答える 3

0

HTMLAnchorの代わりに使用してみてくださいasp:Hyperlink

グリッド:

 <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;');");            
    }
} 

それがうまくいくことを願っています。

于 2012-10-05T05:38:29.073 に答える
0

これは、javascript 関数を呼び出してパラメーターを渡すことで実現できます。RowDataBoundgridviewのイベントを使用してコントロールサーバー側を見つけ、クライアント側イベントを添付してポップアップを開くことができます。そこで、使用して関数にパラメーターを渡しEval、目的のクエリ文字列値を含むポップアップを開きます。aspxでこのようなもの

    <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>

RowDataBoundグリッドビューのイベント内のサーバー側で

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;");
          }
        }
于 2012-10-05T06:46:19.860 に答える
0

ハイパーリンクの代わりにリンクボタンを使用できると思います。

于 2012-10-05T05:35:16.723 に答える