我有一个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";
}
答案 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)
你可以试试这个 -
可能如下所示
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>