在asp.net上点击按钮调用jQuery函数

时间:2013-07-23 04:44:04

标签: javascript jquery asp.net

使用asp.net我试图从服务器端程序调用jQuery函数。在我的表单中,我有一个名为clear image的按钮和一个浏览选项。当我浏览时,图像将插入图像字段中。加载页面时,清晰图像不可见。当我浏览照片时,应该可以看到清除图像按钮,并且浏览选项应该是不可见的。当我单击清除图像按钮时,浏览选项应该是可见的,清除图像按钮本身应该是不可见的。代码如下

       <div id="PhotoTransport" style="float: left; width: 40%; padding-left: 5px;">
                <img id="imgEventPhoto" width="120" height="90" class="IntGalHLNoBrdr" alt='Sorry! No image found.'
                    src='' runat="server" />
            </div>
   <div id="divPhotoUpload" 
   style="float: left; width: 50%;">
                <input id="fupEventPhoto" type="file" size="45" name="PhotoUploadedToUpload" class="imguploader validate[required]"
                    onchange="return validatePhotographToUploadPhoto();" />
                <img id="PhotoLoading" alt="Loading..." src="<%=ResolveClientUrl("~/Images/loading.gif")%>"style="display: none;" />
            </div>                
            <div id="divPhotoThumb" style="font-size: 10px; float: left;">
                <asp:Button ID="btnClearPhoto" runat="server" Text="Clear Image" CssClass="SubmitButton"
                    OnClick="btnClearPhoto_Click" />
            </div>

我有一个jQuery函数如下:

function ShowThumbPhoto() {           
        $('#divPhotoThumb').show();
        $('[#divPhotoUpload').hide();
    };
    function HideThumbPhoto() {
        $('[id$=divPhotoThumb]').hide();
        $('[id$=divPhotoUpload]').show();
        $('[id$=btnClearPhoto]').hide();
    };     

我还有一个服务器端功能,如下所示

 private void CheckImage()
{
    if (Session["ucPhotoUploaderUploadedImagePhoto"] != null)
    {
        this.RegisterJS("ShowThumbPhoto();");

    }
    else
    {
        this.RegisterJS("HideThumbPhoto();");

    }
}

当我试图在btnClearPhoto的点击事件上调用Checkimage()时。这里我将照片存储在Session [“ucPhotoUploaderUploadedImagePhoto”]中。每次回发都会调用check image函数。每次执行得好。

我的问题是,尽管在btnClearPhoto的点击事件上调用了checkimage()。 btnClearPhoto的点击事件代码如下:

protected void btnClearPhoto_Click(object sender, EventArgs e)
    {
        Session["ucPhotoUploaderUploadedImagePhoto"] = null;            
        CheckImage();
    }

我的问题是从checkimage()调用jQuery函数,但在客户端调用jQuery函数。意思是我无法满足我的要求。 我也尝试过这段代码,但它不能正常工作

$("[id$=btnClearPhoto]").click(function(e){
    e.HideThumbPhoto();
});

1 个答案:

答案 0 :(得分:1)

$( '[#divPhotoUpload')隐藏();它认为这个选择器有问题,删除[会纠正它。同样在asp.net中,id的元素会根据其父容器ID进行更改,所以如果你在javascript中引用了你的asp.net控件,那么chnage如下所示。

<%=btnClearPhoto.ClientID%> e.g
$("<%=btnClearPhoto.ClientID%>").click(function(e){
      e.HideThumbPhoto();
      });