(c# - GridView)在代码后面的LinkButton_Click上打开隐藏的FileUpload对话框

(C# - GridView) Open hidden FileUpload Dialogue on LinkButton_Click in Code Behind

本文关键字:Click 对话框 FileUpload 隐藏 LinkButton GridView 代码      更新时间:2023-09-26

我在我的GridView中创建了这个LinkButton :

<asp:LinkButton ID="LinkButtonOpenFile" CssClass="fa fa-upload" runat="server" OnClick="LinkButtonOpenFile_Click"></asp:LinkButton>

外面我的GridView我已经创建了一个FileUpload:

<asp:FileUpload ID="FileUpload1" runat="server" Visible="false"/>

我试图让我的LinkButton打开FileUpload对话与Javascript(服务器和客户端)。没有一个是触发器。这是因为我的LinkButton在我的GridView吗?

我尝试过的例子:;

ClientSide,ServerSide JS:

function openFile(){
        $("#FileUpload1").click();
        }

protected void LinkButtonOpenFile_Click(object sender, ImageClickEventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(GetType(), "Javascript", "openFile()", true);
    }

关于如何解决这个问题有什么建议吗?

更新:Also tried this

<asp:LinkButton ID="LinkButtonOpenFile" CssClass="fa fa-upload" runat="server" OnClientClick="openFile();return false;"></asp:LinkButton>

JS:

 function openFile(){
    $("#FileUpload1").click();
    }

我刚刚发现了这个代码片段,它帮助了我很多:

在你的html中:

<html>
  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>
  <body>
    <span class="file"><!--diesen span kannst du stylen und ist dann anklickbar-->
      Anhänge auswählen
      <input type="file" />
    </span>
  </body>
</html>

添加到你的css:

.file {
    position: relative;
    overflow: hidden;
}
.file input[type=file] {
    position: absolute;
    top: 0;
    right: 0;
    min-width: 100%;
    min-height: 100%;
    font-size: 100px;
    text-align: right;
    filter: alpha(opacity=0);
    opacity: 0;
    outline: none;
    background: white;
    cursor: inherit;
    display: block;
}

你可以走了:-)