【问题标题】:Open dialog window on checkbox click in Telerik RadGrid在 Telerik RadGrid 中单击复选框打开对话框窗口
【发布时间】:2015-05-16 13:55:14
【问题描述】:

我有一个带有 GridTemplate 列的 Telerik RadGrid,其中包含一个 asp:CheckBox。我选择使用 GridTemplate 列而不是 GridCheckBoxColumn 或 ClientSelectColumn,因为我希望用户能够选中该框,如果选中该复选框,则单击复选框打开一个对话框窗口,供他们将附件上传到记录。我不确定如何在网格内单击复选框时打开 RadWindow。

我要实现的总体目标如下:
我有一个看起来像清单的网格。如果用户连续选中复选框,则意味着他们必须为其上传文档,以便打开一个带有小上传表单的对话框窗口。一旦他们点击保存,窗口将关闭,网格将重新绑定一个链接,以查看下一列中的附件。如果有人有更好的工作流程,我愿意接受建议,否则任何关于如何做这样的事情的建议将不胜感激。

【问题讨论】:

    标签: javascript asp.net checkbox telerik telerik-grid


    【解决方案1】:

    至于打开 RadWindow 的命令,我也会采用 Mark 提出的类似方式。没有理由将复选框用作按钮,因为这是此类控件的功能,您无需使用其状态而不是命令。

    添加按钮列并设置其CommandName="something"

    在网格中创建事件 itemCommand 并在后面的代码中添加如下内容:

    if (e.CommandName == "something")
        {
    
            if (e.Item is RadGridDataItem)
            {  
                RadGridDataItem item = e.Item as RadGridDataItem;
                string script = "function f(){openRadWindow(); Sys.Application.remove_load(f);}Sys.Application.add_load(f);";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", script, true);  
            }
        }
    

    添加你的 JS:

    function openRadWindow() {
            var radwindow = $find('<%=RadWindow1.ClientID %>');
            radwindow.show();
        }
    

    添加您的 radWindow:

    <telerik:RadWindow ID="RadWindow1" VisibleOnPageLoad="false" OnClientClose="//here you can generate the event to rebind your grid and show the update" runat="server" Width="450px" Height="650px" NavigateUrl="Window1.aspx" >
                        </telerik:RadWindow>
    

    创建页面 Window1.aspx 并在其中详细说明加载文件的逻辑。

    另一种更简单的方法是使用edit template form 而不是 radWindow 并在其中添加一个 asyncUploader 以及您可能需要填写的其他控件,以避免必须获取所有要关联的引用记录的输入。

    【讨论】:

      【解决方案2】:

      您可以使用带有选中或未选中图像的图像按钮来伪造复选框单击,具体取决于您需要的状态(只需找到图像图标)。您还可以使用带有处于各种状态的复选框的字体的链接按钮。

      然后您可以使用命令事件,该事件将冒泡到 radgrid 的命令事件。这还允许您设置命令参数来表示您需要的行或其他数据。将其推入一个由 viewstate 变量支持的属性(例如 SelectedItem)中,这样它将持续存在,您可以将窗口的 VisibleOnPageLoad 设置为 true。

      【讨论】:

        猜你喜欢
        • 2016-12-06
        • 2023-03-30
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多