在c#中检索html td onClick事件值

时间:2015-01-30 15:49:21

标签: javascript c# html asp.net

我在html中有一个带有这样的代码的表,

<table class="window" style="margin-top: 15px; text-align: center;">
       <tr id="NavMonth">
           <td id="m1" onclick="">
           Jan
           </td>
           <td id="m2" onclick="">
           Feb
           </td>
           <td id="m3" onclick="">
           Mar
           </td>
           <td id="m4" onclick="">
           Apr
           </td>
           <td id="m5" onclick="">
           May
           </td>
           <td id="m6" onclick="">
           Jun
           </td>
       </tr>
</table>

现在基于onClick事件,我想将月份的值存储在c#中的变量中。对于前者它id&#34; m4&#34;单击,我想在我的变量中存储值4。

任何想法都会有所帮助和赞赏。

感谢。

3 个答案:

答案 0 :(得分:1)

click事件与c#无关,因为它发生在客户端浏览器中。您可以使用js。

对用户事件做出反应

如果您想在服务器端执行某些操作(在用户单击之后),您必须创建一个ajax调用并通过回发发送单击的值。的jQuery ...

包含所点击表格单元格的服务器端脚本的目标是什么?操纵数据库中的数据? 请注明....

答案 1 :(得分:0)

您可以尝试这样的事情:

var table = document.getElementById("NavMonth").
var rows = table.getElementsByTagName("tr");

for (i = 0; i < rows.length; i++) {
    var currentRow = table.rows[i];
    currentRow.onclick = function(){
        alert(currentRow.getAttribute("id"));
    }
} 

点击一行后,当前行的id值将显示在警告框中。这是您获得价值的方式。你将如何使用它取决于你想做什么。将此值存储在C#中的变量中似乎有点奇怪。我假设你可能想要别的东西。您可能希望将此值传递给服务器,然后根据此值执行其他操作,例如更新数据库中表的行的列值。我无法想象你需要它的地方。因此,我无法就如何使用它给你一个具体的答案。

<强>更新

  

如何将此值存储在c#变量中,或者我可以调用c#   onClick事件中的函数?

如果你想调用函数C#,假设你进行了ajax调用。如果您使用ASP.NET Web表单而不是ASP.NET MVC,则可以避免这种情况。在这种情况下,mybirthname建议是最简单的方法。

答案 2 :(得分:0)

首先在aspx中添加asp:HiddenField。让这个hiddeField有ID =&#34;隐藏&#34;。

之后,您将使用jquery将onClick事件附加到表的td,并将​​隐藏字段的值设置为当前td的ID。

$(document).ready(function () {

    $('.window td').on('click',function(){
       var idName = this.id;
       $('#hidden').val(idName);
    });
});

最后在你的C#代码中:

string text = hidden.Text;//you will remove m part of the Id and you have the number.

请注意代码是动态编写的,可能您应该使用console.log或警报功能检查javascript。