javascript - 调用按钮单击gridview内的文件上传

标签 javascript c# jquery asp.net gridview

我正在尝试上传 gridview 内“Fileupload”控件的文件 onchange 事件。 意味着当用户上传文件时,我本身需要将文件内容保存在数据库中。 因此,我在文件上传控件的更改上手动调用了按钮控件的单击事件,但它抛出了类似“无效的回发或回调参数......”的异常。

我的gridview代码:

<asp:GridView runat="server" ID="grd" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="StudentID" HeaderText="Student ID" />
        <asp:BoundField DataField="StudentName" HeaderText="Name" />
        <asp:TemplateField HeaderText="Upload">
            <ItemTemplate>
                <asp:FileUpload ID="FileUpload1" runat="server" EnableViewState="true" onChange="FileUploadCall(this)" />
                <asp:Button ID="btnUpload" Text="Upload" runat="server" OnClick="Upload" Style="display: none" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

我的脚本代码:

<script type="text/javascript">
    function FileUploadCall(fileUpload) {
        if (fileUpload.value != '') {
            var a = $('#<%=grd.ClientID %>').find('[id*="btnUpload"]');
            a.click();
        }
    }
</script>

我的隐藏按钮在 cs 文件中手动单击创建:

protected void Upload(object sender, EventArgs e)
{
    Button btn = sender as Button;
    GridViewRow gvr = (GridViewRow)btn.Parent.Parent;

    FileUpload lbleno = (FileUpload)gvr.FindControl("FileUpload1");

    lbleno.SaveAs(Server.MapPath("~/Uploads/" + Path.GetFileName(lbleno.FileName)));
    //lblMessage.Visible = true;
}

最佳答案

您获取上传按钮的 jquery 代码可能就是原因。

既然您说您正在使用 GridView ,因此可能有多行,每行都有自己的文件上传和按钮控件。您需要在 GridView 中获取与该行关联的按钮控件。要获取关联按钮,您应该使用如下所示的 jquery 代码,因为关联按钮紧跟在文件上传控件后面。

if (fileUpload.value != '') {
    var a = $(fileUpload).next("[id*='Button1']");
    a.click();
  }

关于javascript - 调用按钮单击gridview内的文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48327922/

相关文章:

c# - 工具条的组合框没有选定的值

c# - 打开预先存在的 Excel 文件

javascript - jquery fadeOut div 无法淡入

javascript - jquery函数的总表列

javascript - 无法滚动 IE7 滚动条

javascript - 我如何在 Javascript 中对数据(不是字符串)进行 base64 编码?

jquery - CORS Django 'Access-Control-Allow-Origin'

javascript - Node.js 生成 html

javascript - Blazor 在特定组件中包含 javascript 库

javascript - 如何使用 OOJS 创建 Accordion