ASP,Listview条件警报

时间:2011-07-13 10:54:31

标签: c# javascript asp.net listview

我目前正在使用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的可见性,以确保控件存在并满足条件。

1 个答案:

答案 0 :(得分:0)

我很困惑你为什么要做你正在做的事情。为什么你想要代码隐藏来处理htmltablecell的onclick事件,当你抽出javascript来显示警报时呢?

为什么不在Javascript中处理整个逻辑?

来自htmltablcell的回发也需要javascript

设置你的tablecell以调用一个javascript函数,该函数将从隐藏值中获取警报文本并显示该函数;

        function ShowAlert()
        {
           var message = document.getElementbyId("hidden").value;
           alert.show(message);
        }