注:私はまだコードの大部分を書いていないので、コードを修正する方法は問いません。私は私が以下で説明するようなことをどうやって行うのかを尋ねています(つまり、foreachループによって生成されたハイパーリンクをユーザーの名前の代わりにコンテキスト項目に付けます)。または、私が考えていることを明確にする方法は、コンテキストメニューで、User Userが右クリックしていることを知ることです。foreachループの変数をコンテキストメニューに渡す
こんにちは、基本的に私は何をしようとしているのですか?ユーザーのリストがあり、私のWebページには、右クリックしたときにコンテキストメニューがポップアップするユーザー名のリストを " 「友人要求を送信する」または「メッセージユーザ」を選択し、ユーザがこれらのオプションの1つをクリックすると、「メッセージユーザ」オプションと言います。ユーザはURL内のクリックされたユーザIDをクエリとして別のページに送信されます文字列。
これは私がこれまで持っているものです。上のクリックしたときには、クリックしたユーザーのID URLに
<ul>
\t <%foreach(UserCredential u in Global.Users) %>
\t <%{ %>
\t \t <li><a href="<%= "Chat.aspx?RecID=" + u.UserID.ToString() %>"><%= u.Name %></a></li>
\t <%} %>
<ul />
そして、これは、コンテキスト・メニュー
<div style="display:none; " id="contextMenu">
<table border="0" cellpadding="0" cellspacing="0"
style="border: thin solid #808080; cursor: default;" width="100px"
bgcolor="White">
<tr>
<td >
<div class="ContextItem">Message User</div>
</td>
</tr>
<tr>
<td >
<div class="ContextItem">Friend User</div>
</td>
</tr>
<tr>
<td >
<div class="ContextItem">Delete</div>
</td>
</tr>
</table>
\t </div>
基本的には、ユーザーがContextItemをクリックした場所のループから "a href =" <%= "Chat.aspx?RecID =" + u.UserID.ToString()%> "" 。
function ShowMenu(control, e, id) {
var posx = e.clientX + window.pageXOffset + 'px'; //Left Position of Mouse Pointer
var posy = e.clientY + window.pageYOffset + 'px'; //Top Position of Mouse Pointer
document.getElementById(control).style.position = 'absolute';
document.getElementById(control).style.display = 'inline';
document.getElementById(control).style.left = posx;
document.getElementById(control).style.top = posy;
a.style.position = 'absolute';
a.style.display = 'inline';
a.style.left = posx;
a.style.top = posy;
var jqContext = '#' + id;
var view = document.getElementById("viewId");
view.href = "Chat.aspx?RecID=" + id;
}
そして、これは私のforeachループである:ここで
は、私が今持っているものである。ここ
<%foreach(UserCredential u in Global.Users) %>
<%{ %>
<li onmousedown="HideMenu('contextMenu');" onmouseup="HideMenu('contextMenu');" oncontextmenu="ShowMenu('contextMenu', event, <%= u.UserID.ToString() %>);"><%= u.Name %></li>
<%} %>
は私の全体のコードです。もし何が間違っているのか分かる人は、教えてください。コードビハインド
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ProfilePicTest.aspx.cs" Inherits="ProfilePicTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
\t <script language="javascript" type="text/javascript">
\t \t function ShowMenu(control, e, id) {
\t \t \t var posx = e.clientX + window.pageXOffset + 'px'; //Left Position of Mouse Pointer
\t \t \t var posy = e.clientY + window.pageYOffset + 'px'; //Top Position of Mouse Pointer
\t \t \t document.getElementById(control).style.position = 'absolute';
\t \t \t document.getElementById(control).style.display = 'inline';
\t \t \t document.getElementById(control).style.left = posx;
\t \t \t document.getElementById(control).style.top = posy;
\t \t \t a.style.position = 'absolute';
\t \t \t a.style.display = 'inline';
\t \t \t a.style.left = posx;
\t \t \t a.style.top = posy;
\t \t \t var jqContext = '#' + id;
\t \t \t var view = document.getElementById("viewId");
\t \t \t view.href = "Chat.aspx?RecID=" + id;
\t \t }
\t \t function HideMenu(control) {
\t \t \t document.getElementById(control).style.display = 'none';
\t \t }
\t </script>
</head>
<body onclick="HideMenu('contextMenu');" oncontextmenu="return false">
<form id="form1" runat="server">
<div>
\t \t <ul>
\t \t \t <%foreach(UserCredential u in Global.Users) %>
\t \t \t <%{ %>
\t \t \t \t <li onmousedown="HideMenu('contextMenu');" onmouseup="HideMenu('contextMenu');" oncontextmenu="ShowMenu('contextMenu', event, 3);"><%= u.Name %></li>
\t \t \t <%} %>
\t \t </ul>
</div>
\t <br />
<br />
<div style="display:none; " id="contextMenu">
<table border="0" cellpadding="0" cellspacing="0"
style="border: thin solid #808080; cursor: default;" width="100px"
bgcolor="White">
<tr>
<td >
<a href="#" id="viewId">Send a Friend Request</a>
</td>
</tr>
<tr>
<td >
<a href="#" id="editId">Message</a>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
空です:
を満たしている場合は、のコードを含めることができます知ってみましょうそれコンテキストメニューと登録されているイベントを表示しますか? – Rex
私はまだコードを書いていないので、コードを修正する方法については尋ねません。私はこれをどうやって行うのかを知りたいだけです(つまり、ユーザの名前ではなくContextItemへのハイパーリンクをどのように付け加えるか)。 – Xigaphactus