1

使用 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"] 中。每次回发时都会调用检查图像功能。每次都执行得很好。

我的问题是尽管在 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();
});
4

1 回答 1

1

$('[#divPhotoUpload').hide(); 它认为这个选择器有问题,删除 [ 将更正它。同样在 asp.net 中,元素的 id 会根据它们的父容器 id 进行更改,因此无论您在 javascript 中引用您的 asp.net 控件的任何位置,都按如下方式进行更改。

<%=btnClearPhoto.ClientID%> e.g
$("<%=btnClearPhoto.ClientID%>").click(function(e){
      e.HideThumbPhoto();
      });
于 2013-07-23T04:59:19.027 回答