내 asp.net 앱의 사용자 (멤버십 클래스 사용)가있는 동적 테이블이 있습니다. javascript를 사용하여 팝업을 열기 위해 각 역할 셀 안에 컨트롤을 추가하려고합니다. 지금은 함수가 실행되는지 만 확인합니다. 그러나 셀을 클릭하면 오류가 발생합니다. "잡히지 않은 SyntaxError : 예기치 않은 토큰}". 뒤에예기치 않은 토큰 "}"LiteralControl 오류
<head runat="server">
<title></title>
<script type="text/javascript">
function alert_function(id)
{
alert(id);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:placeholder ID="Placeholder1" runat="server"></asp:placeholder>
</div>
</form>
</body>
</html>
내 코드 :
protected void Page_Load(object sender, EventArgs e)
{
MembershipUserCollection users = Membership.GetAllUsers();
Table tbl = new Table();
TableRow h_row = new TableRow();
TableCell c1 = new TableCell();
TableCell c2 = new TableCell();
TableCell c3 = new TableCell();
TableCell c4 = new TableCell();
TableCell c5 = new TableCell();
TableCell c6 = new TableCell();
c1.Text = "משתמש מחובר?";
c2.Text = "התחבר לאחרונה";
c3.Text = "נוצר ב";
c4.Text = "דואר אלקטרוני";
c5.Text = "תפקיד";
c6.Text = "שם משתמש";
h_row.Controls.Add(c1);
h_row.Controls.Add(c2);
h_row.Controls.Add(c3);
h_row.Controls.Add(c4);
h_row.Controls.Add(c5);
h_row.Controls.Add(c6);
tbl.Controls.Add(h_row);
foreach (MembershipUser u in users)
{
TableRow row1 = new TableRow();
TableCell cell1 = new TableCell();
TableCell cell2 = new TableCell();
TableCell cell3 = new TableCell();
TableCell cell4 = new TableCell();
TableCell cell5 = new TableCell();
TableCell cell6 = new TableCell();
cell1.Text = u.IsOnline.ToString();
cell2.Text = u.LastLoginDate.ToString();
cell3.Text = u.CreationDate.ToString();
cell4.Text = u.Email;
string user_name=u.UserName;
string[] role = Roles.GetRolesForUser(user_name);
if (role.Length < 1)
cell5.Text = "אין תפקיד";
**else
{
LiteralControl lc=new LiteralControl("<a onclick='alert_function('"+u.UserName.ToString()+"')'>" + role[0] + "</a>");
cell5.Controls.Add(lc);
}**
cell6.Text = u.UserName;
row1.Controls.Add(cell1);
row1.Controls.Add(cell2);
row1.Controls.Add(cell3);
row1.Controls.Add(cell4);
row1.Controls.Add(cell5);
row1.Controls.Add(cell6);
tbl.Controls.Add(row1);
}
Placeholder1.Controls.Add(tbl);
}
** 그것은 이상한이기 때문에가 코드에서 hilighted 라인을 변경할 때 :
여기내 영문입니다
LiteralControl lc=new LiteralControl("<a onclick='alert_function("+u.UserName.ToString()+")'>" + role[0] + "</a>");
(제거 은 " ''") 그것은 작동하지만 사용자 이름이 너무 숫자 만이 경고되는 문자열로 전송하지 않습니다. **
당신이 문자열을 사용하는 경우, 그것은 인용 할 필요가 숫자는 따옴표로 묶을 필요가 없습니다. 그렇지 않으면 JavaScript가 변수에 대한 참조로 해석합니다 ... 아마도 정의되지 않았습니다 ... – Ian
하지만이 오류는 이상합니다 .. – Dvirski
브라우저에서 실제로 끝나는 소스. 그게 뭐가 잘못되었는지 훨씬 더 쉽게 알 수 있습니다. – Pointy