ASP.NET +网格视图命令字段作为模板字段

发布于 2024-08-09 04:51:57 字数 286 浏览 7 评论 0原文

我有一个网格视图。我的 GridView 有一个包含“选项”列的列。此列包括传统的 CommandField 选项(编辑、删除等)。我的代码设置可以在使用 CommandField 时工作。但是,我需要进行一些自定义格式设置,因此我需要将 CommandField 转换为 TemplateField。

我的问题是,如何从 TemplateField 中的各个 LinkBut​​ton 元素触发 OnRowCommand、OnRowEditing、OnRowDeleting 和 OnRowUpdating 事件?

谢谢你!

I have a GridView. My GridView has a column that is contains an "Options" column. This column includes the traditional CommandField options (edit, delete, etc.). I have the code setup to work when a CommandField is used. However, I need to do some custom formatting so I needed to convert the CommandField to a TemplateField.

My question is, how do I trigger the OnRowCommand, OnRowEditing, OnRowDeleting, and OnRowUpdating events from the various LinkButton elements in my TemplateField?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

晨曦÷微暖 2024-08-16 04:51:57

您所要做的就是将模板列内的 LinkBut​​ton 的 CommandName 属性设置为“编辑”以进行编辑,“删除”以进行删除,“更新”以进行更新。这将分别触发 GridView RowEditing、RowDeleting 和 RowUpdating 事件。要触发 RowCommand 事件,您需要设置 GridView 控件的 OnRowCommand 属性。

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"
    OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
    OnRowUpdating="GridView1_RowUpdating">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <!--To fire the OnRowEditing event.-->
            <asp:LinkButton ID="lbEdit" runat="server" CommandName="Edit" 
                Text="Edit">
            </asp:LinkButton>
            <!--To fire the OnRowDeleting event.-->
            <asp:LinkButton ID="lbDelete" runat="server" CommandName="Delete" 
                Text="Delete">
            </asp:LinkButton>
            <!--To fire the OnRowUpdating event.-->
            <asp:LinkButton ID="lbUpdate" runat="server" CommandName="Update" 
                Text="Update">
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>    
</asp:GridView>

All you have to do is set the CommandName property of the LinkButton inside of your template column to 'Edit' for editing, 'Delete' for deleting and 'Update' for updating. This will trigger the GridView RowEditing, RowDeleting and RowUpdating events respectively. To trigger the RowCommand event you need to set the OnRowCommand property of your GridView control.

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"
    OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
    OnRowUpdating="GridView1_RowUpdating">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <!--To fire the OnRowEditing event.-->
            <asp:LinkButton ID="lbEdit" runat="server" CommandName="Edit" 
                Text="Edit">
            </asp:LinkButton>
            <!--To fire the OnRowDeleting event.-->
            <asp:LinkButton ID="lbDelete" runat="server" CommandName="Delete" 
                Text="Delete">
            </asp:LinkButton>
            <!--To fire the OnRowUpdating event.-->
            <asp:LinkButton ID="lbUpdate" runat="server" CommandName="Update" 
                Text="Update">
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>    
</asp:GridView>
┈┾☆殇 2024-08-16 04:51:57

我也有同样的问题。

对于编辑,我做了以下操作:

        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="EditButton"
                                runat="server"
                                CommandName="Edit" 
                                Text="Edit" />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:LinkButton ID="UpdateButton"
                                runat="server"
                                CommandName="Update"
                                Text="Update" /> 
                <asp:LinkButton ID="Cancel"
                                runat="server"
                                CommandName="Cancel"
                                Text="Cancel" />
            </EditItemTemplate>
        </asp:TemplateField>

这允许显示/隐藏更新和取消按钮。

至于删除,我使用了以下内容:

    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="DeleteButton"
                            Text="Delete"
                            CommandName="Delete" 
                            runat="server" />
        </ItemTemplate>
    </asp:TemplateField>

I had the same problem.

For edit, I did the following:

        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="EditButton"
                                runat="server"
                                CommandName="Edit" 
                                Text="Edit" />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:LinkButton ID="UpdateButton"
                                runat="server"
                                CommandName="Update"
                                Text="Update" /> 
                <asp:LinkButton ID="Cancel"
                                runat="server"
                                CommandName="Cancel"
                                Text="Cancel" />
            </EditItemTemplate>
        </asp:TemplateField>

This allows for the showing/hiding of the update and cancel buttons.

As for delete, I used the following:

    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="DeleteButton"
                            Text="Delete"
                            CommandName="Delete" 
                            runat="server" />
        </ItemTemplate>
    </asp:TemplateField>
脸赞 2024-08-16 04:51:57

单击属性中的“列”,添加 CommandField(Edit,update,Cancel) 并单击“将此字段转换为 templateField”,

切换到源并自动添加代码。

click on Columns in properties, add CommandField(Edit,update,Cancel) and Click on the "Convert this field to templateField"

Swich to Source and automatically going to add a code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文