如何使用AJAX(AjaxControlToolkit)和C#隐藏/显示控件

本文关键字:隐藏 显示 控件 何使用 AJAX AjaxControlToolkit | 更新日期: 2023-09-27 18:00:44

我知道这听起来一定很基本,但我在这里真的很困惑。我想做的是在流程完成后显示超链接。这个过程就是AsyncFileUpload。在ASPX页面中,我想创建一个,但在初始页面加载时将其隐藏。如果我设置样式="display:none;"似乎有效,但在文件上传后,我所做的一切都不会使控件再次可见。上传文件时,它会调用一个名为FileUploadComplete的函数。在这里,无论我做什么,超链接都不会显示。

非常感谢您的帮助:)

谢谢,dave

这是ASPX代码(最近添加了javascript)

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="OptionsPlaceHolder" runat="server">
    <script language="javascript" type="text/javascript">
        function ShowLink() {
            $("#openFile").show();
        }
    </script>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolderBody" runat="server">
    <asp:UpdatePanel ID="updImportFile" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <div class="pageHeader">           
                <asp:Literal runat="server" ID="pageTitle" Text="<%$ Resources:Resources, ImportFile %>" />
            </div>
            <ajaxToolkit:AsyncFileUpload ID="FileUpload1" runat="server" Width="600px" 
UploaderStyle="Traditional" OnUploadedComplete="FileUploadComplete" ThrobberID="throbber" 
               CompleteBackColor="#E9F2FD" OnClientUploadComplete="ShowLink" />
            <asp:Image runat="server" ID="throbber" ImageUrl="images/loading.gif" />                    
            <br />
            <asp:Hyperlink runat="server" ID="openFile" NavigateUrl="~/OpenFile.aspx" Text="Open" 
style="display:none;"/>
        </ContentTemplate>
    </asp:UpdatePanel>        
</asp:Content>

下面是代码:

 protected void FileUploadComplete(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            string importName = Server.MapPath(@"Uploads'") + FileUpload1.FileName;
            FileUpload1.SaveAs(importName);
            // Import the JSA
            JSA jsa = new JSA();
            jsa.Import(importName);
            // Show the Hyperlink
            ShowLink();
        }
    }
    private void ShowLink()
    {
        openFile.Attributes["Style"] = string.Empty;
    }

我没有包含母版页代码。它有ToolkitScriptManager。

如何使用AJAX(AjaxControlToolkit)和C#隐藏/显示控件

您是想在客户端还是服务器端显示?链接是客户端对象还是服务器端对象?Javascript将是标准的方式。

如果控件是客户端对象:

document.getElementById("hyperlink_name").style.display = "block"; 

或者如果是服务器端对象:

document.getElementById("<%= hyperlink_name.ClientID %>").style.display = "block"; 

我建议使用jQuery并使用以下内容:

$('#hyperlink_name').show(); 

或者你可以使用ASP。Net链接按钮并在服务器端执行:

linkButton.Visible = true; 

如果您能发布一些您已经尝试过的代码,这样我们就可以更好地了解您的位置,这将更有帮助。

{第一个答案已删除}

[EDIT:当我第一次读到这个问题时,我没有发现你在使用AsyncFileUpload]

在更新面板中使用AsyncFileUpload,通过部分回发访问服务器,因此服务器上的其他控件(超链接)不会受到的影响。这将要求您使用javascript(或最好是jquery)在客户端上进行更改。

您可以在OnClientUploadComplete函数上执行此操作,但必须引用如下超链接:<%=hyperLink。ClientID%>.style.display="块";

另一种更asp.net的方式是使用更新面板。将超链接放入UpdatePanel中,并在上传文件时在UpdatePanel上设置触发器。然后在UploadedComplete事件中更改服务器上的可见性。