[英]How to get the ID of a panel when clicked, when panel ID is dynamically generated
我正在使用 Razor 构建面板(返回的许多项目的数量各不相同),然后当一个面板被点击时,我需要点击的 panelID 以便我可以获得有关点击的面板的更多数据。 jquery/javascript 的新手。 我已经捕获了 panelID,所以我知道这被分配给了面板,以及 paneltextID。
下面是包含面板和 javascript 的 div:
@for (int i = 0; i < @rows; i++)
{
<div class="row">
@for (int j = 0; j < @cols; j++)
{ if(panelCount <= totalCount){
sqlCommand = "SELECT FullDescription AS Description FROM shmr.RemoteSQLDatabases WHERE DBID1 = " + @panelCount + " ORDER BY DBName";
//<p>@sqlCommand</p>
//This grid contains the information for the specific database of this panel
var Grid2 = new WebGrid(DB.Query(sqlCommand));
//var DBName = DB.Query(sqlCommand);
DBName = DB.QueryValue("SELECT DBName FROM shmr.RemoteSQLDatabases WHERE DBID1 = " + @panelCount + " ORDER BY DBName");
string panelID =null;
panelID = "panel" + panelCount.ToString();
// <p>Panel is @panelID</p>
<div class="col-md-3">
<div id= @panelID class='panel panel-success', style="display: inline-block">
<div class='panel-heading text-center'><b>@DBName </b><img src="~/Images/Doctor (2).png" align="left" width="30" height="30" /></div>
<div class="panel-body m200">
@if(Grid2 !=null)
{
<text> @Grid2.GetHtml(columns:Grid2.Columns(Grid2.Column("Description")))</text>
<input type="hidden" name="paneltextID" value=@panelCount>
<p>PanelID = @panelID</p>
}
else{
<text>No data was found to display!</text>
}
</div>
<div class="panel-footer text-center">
Database status as of @DT
</div>
</div>
</div>
panelCount = panelCount + 1;
}
}
</div>
}
</div>
$(".panel").click(function () {
var panelID = $('#panelID').val();
if (panelID != null) {
alert("Panel " + panelID + " clicked! :)");
} else {
alert("PanelID is null :(");
}
});
您不必将其设为ID。 只要这样做:
<div class="panel panel-success" data-id=@panelId ...>
然后在您的jquery中,您可以执行以下操作:
$(".panel").click(function () {
var panelID = $(this).data('id');
if (panelID != null) {
alert("Panel " + panelID + " clicked! :)");
} else {
alert("PanelID is null :(");
}
});
代码中的实际错误是您在javascript中查找#panelId(不应存在)。
尝试设置ClientIDMode = 静态面板属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.