首页 > 解决方案 > DotNetNuke 9 开发动态添加用户控件到编辑页面

问题描述

我正在使用 Chris Hammond 的模块模板在 DotNetNuke 9.9 中开发一个自定义模块(顺便说一句,它们很棒)。到目前为止,一切进展顺利,但我遇到了一个特定客户要求的砖墙:他们希望能够向表单动态添加其他控件 - 多个文件上传控件。我想实现的一个例子可以在这里看到:https ://www.aspsnippets.com/questions/128775/Dynamically-create-FileUpload-control-for-uploading-multiple-files-using-C-and-VBNet -在 ASPNet/

对于每个要上传的文件,他们需要一个文本框来输入文件的描述。表单本身还有其他几个带有 RequireFieldValidators 的输入字段。

我创建了一个服务器端 asp:table,我的想法是在用户单击页面上的“添加文件”按钮时简单地添加一个新的 TableRow。TableRow 将由 3 个 TableCell 组成 - 一个带有 FileUpload 控件,一个带有用于描述的文本框,1 个带有一个按钮,允许他们在需要时删除该行。该模块已定义为支持部分渲染。

这是 ascx 部分的样子:

        <div class="dnnFormItem">
            <dnn:label id="lblAttachments" runat="server" />
            <div class="editItem">
                <asp:Table ID="tblAttachments" runat="server" >
                    <asp:TableHeaderRow ID="thrAttachments" runat="server" >
                        <asp:TableHeaderCell ID="hdrFileName" runat="server" Width="35%" HorizontalAlign="Left" Text="File Name" />
                        <asp:TableHeaderCell ID="hdrDescription" runat="server" Width="35%" HorizontalAlign="Left" Text="Description" />
                        <asp:TableHeaderCell ID="hdrRemove" runat="server" Width="5%" HorizontalAlign="Right" />
                    </asp:TableHeaderRow>
                </asp:Table>
            </div>

            <div>
                <asp:linkButton ID="lnkAddFile" resourcekey="lnkAddFile" OnClick="lnkAddFile_Click" runat="server" Cssclass="dnnSecondaryAction" />
            </div>

我遇到的问题是,当我单击“添加文件”按钮时,验证器都会触发并显示丢失数据等的错误消息,并且实际上并未调用用于将行添加到表中的服务器端代码。

每次单击按钮时,如何调用服务器端函数来添加新行,而无需实际回发到服务器并触发验证器?这应该只在使用提交按钮实际提交整个表单时发生

我在这里想念什么?

谢谢,阿隆

标签: ajaxdotnetnukednn9

解决方案


推荐阅读