我目前正在使用listview,其中我希望htmltablecell拥有onclick属性,该属性由代码隐藏而不是javascript驱动。但是我猜这是一个让它遵守C#的梦想代码......无论如何,这就是我想要它运行的东西:
protected void show_anm(object sender, EventArgs e)
{
Label hiddenc = (Label)listview1.FindControl("hidden");
Alert.Show(hiddenc.Text);
}
这是Alert类
public static class Alert
{
public static void Show(string message)
{
string cleanMessage = message.Replace("'", "\\'");
string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>";
Page page = HttpContext.Current.CurrentHandler as Page;
if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
{
page.ClientScript.RegisterClientScriptBlock(typeof(Alert), "alert", script);
}
}
}
关键在于创建一个带有两个条件表单元的列表视图,一个仅在满足某个条件时出现,另一个出现在另一个条件表单单元格中(另一个出现时)。要求条件的人是可点击的,点击它后,它将显示一个包含来自特定数据库单元格的数据的警报框...
对不起,如果我的语言和问题出现问题,英语不是我的母语,我还没有在Coffe中使用过。
对此事的任何帮助都会得到最多的认可
EDIT1 *
<asp:Listview ................
<ItemTemplate>
<tr ......>
<td id=default .....>
<asp:label ........ Text='<%# eval("stuff") %> />
</td>
<td id=conditional onclick=alert()..........>
<asp:label ......... Text='<%# eval("stuff") %> />
</td>
<td id=hidden visible=false ...........>
<asp:label ......... Text='<%#eval("stuff i want in alert") %>' />
.....
<script tyupe="text/javascript">
function alert()
{
var msg = document.getElementById("tried with label id and tablecell id nothing seemingly worked").value;
alert(msg);
}
</script>
我最近做了一个解决方法,显示了我想要在标签工具提示中显示的数据,但我仍然希望警报框能够正常工作,因为点击某些东西感觉更自然。
Edit2如果有人想知道我使用ItemDataBound事件来绑定if子句中单元格default和conditional的可见性,以确保控件存在并满足条件。
答案 0 :(得分:0)
我很困惑你为什么要做你正在做的事情。为什么你想要代码隐藏来处理htmltablecell的onclick事件,当你抽出javascript来显示警报时呢?
为什么不在Javascript中处理整个逻辑?
来自htmltablcell的回发也需要javascript
设置你的tablecell以调用一个javascript函数,该函数将从隐藏值中获取警报文本并显示该函数;
function ShowAlert()
{
var message = document.getElementbyId("hidden").value;
alert.show(message);
}