服务器端如何点击div?

时间:2014-03-01 04:59:08

标签: html asp.net

我有一个div ..在div中我有一个图像和名称..现在,当我点击div时div将有一个服务器端点击,这意味着它将有一个代码隐藏功能..如何做到这一点??或者如何让我的div成为一个按钮,我不需要改变我的div ...

我的代码

<div class="tutorial" style="margin-left:5px;">
         TUTORIAL<div class="firstico" style="margin-left:70px;margin-top:-17px;">
         </div>
     </div>  

我怎么能有这个div的服务器端onclick功能???

我已经习惯了,但它对我不起作用..不知道为什么?

 <div class="tutorial" style="margin-left:5px;"
 runat="server" id="tutorial" onClick="tutorial_Click">

 TUTORIAL<div class="firstico" style="margin-left:70px;margin-top:-17px;">
 </div>
 </div>


private void tutorial_Click(object sender, System.EventArgs e){
 // do stuff
}

我也尝过这样的但是它对我也不起作用......

<div class="tutorial" style="margin-left:5px;"
  onclick="__doPostBack('tutorial', 'click');">

 TUTORIAL<div class="firstico" style="margin-left:70px;margin-top:-17px;">
 </div>
 </div>


private void PageLoad(object sender, System.EventArgs e){
 // sttufs
 [...]

 // my stuff for tutorial click
 if (Request["__EVENTTARGET"] == "tutorial" && Request["__EVENTARGUMENT"] == "click"){
     TutorialClicked();
 }
}

private void TutorialClicked(){
 iframestyle.Attributes["src"] = "userpage.aspx";
}

4 个答案:

答案 0 :(得分:1)

您必须使用div处理Jquery中的点击,并通过JQuery调用服务器端方法。

试试吧。

源代码: -

<div class="tutorial" style="margin-left:5px;"
 runat="server" id="tutorial" onClick="javascript:tutorial_Click('peram1')">click me
</div>

Javascript代码: -

<script type="text/javascript">
    function tutorial_Click(parameter)
    {
       __doPostBack('tutorial', parameter)
    }
</script>

代码: -

public void Page_Load(object sender, EventArgs e)
{
     string parameter = Request["__EVENTARGUMENT"]; // parameter
     // Request["__EVENTTARGET"]; // btnSave
     if (parameter == "peram1")
         TutorialClicked();
}

private void TutorialClicked(){
   //write your code.
}

有关更多信息,请参阅__doPostBack

答案 1 :(得分:0)

您无法从服务器端侦听点击事件。服务器向您发送所需文件后,不再涉及服务器。 你需要一个客户端监听器,jquery非常容易使用。

索引(或者你得到的任何html页面):

<div id="clickme" class="tutorial" style="margin-left:5px;">
    <div class="firstico" style="margin-left:70px;margin-top:-17px;">
    TUTORIAL
    </div>
</div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
    $('#clickme').on('click', function () {//can replace '#clickme' for '.tutorial' if you want to be able to click multiple divs
        //do stuff
        $.ajax({//with ajax you can send a request to the server, and make it do somthing.
            url: '/path/to/file',
            type: 'post',
            data: {variable: 'data'},
            success: function(data) {//data is what you echo on from php
            //do something on the site
                alert(data);//just alert what you echo
            }
        });

    });
</script>

而php(例如)有点像这样:

<?php
    function doMe() {
        //your function
    }
    if(isset($_POST['variable'])) {
        if($_POST['variable'] === 'data') {
            doMe();
        }
    }
?>

答案 2 :(得分:0)

你可以试试这个 -

  1. 在html标记中添加一个按钮,并将其设置为style =“display:none”。所以任何人都看不到它。
  2. 现在向此按钮添加点击事件。
  3. 点击div调用点击按钮事件
  4. 可能如下所示

    function tutorial_Click(){
      // call here the button click which will do a postback
      document.getElementById('<%= btn.ClientID %>').click();
    }
    

    4。在服务器端的按钮点击事件中执行代码。

    希望这有帮助。

答案 3 :(得分:0)

假设您希望显示“tutorial.aspx”页面。

然后让你的div看起来像这样:

<div class="tutorial" style="margin-left:5px;" onclick="location.href='tutorial.aspx';">
    TUTORIAL
</div>

假设您的主页上有iframe; (参考上面代码的这一部分)

  

private void TutorialClicked(){iframestyle.Attributes [“src”] =“userpage.aspx”; }

围绕像这样的文本包裹锚点

<a href="userpage.aspx" target="your_frame_name">User Page</a>