سؤال

ولدي GridView. بلدي GridView يحتوي على عمود الذي يحتوي على عمود "خيارات". ويشمل هذا العمود الخيارات التقليدية CommandField (تحرير، حذف، وما إلى ذلك). لدي الإعداد كود للعمل عند استخدام CommandField. ومع ذلك، ولست بحاجة للقيام ببعض التنسيق مخصصة لذلك أنا في حاجة لتحويل CommandField إلى TemplateField.

وسؤالي هو، كيف يمكنني تحريك OnRowCommand، OnRowEditing، OnRowDeleting، والأحداث OnRowUpdating من العناصر LinkButton مختلف في بلدي TemplateField؟

وشكرا لك!

هل كانت مفيدة؟

المحلول

وكل ما عليك تعيين الخاصية CommandName من LinkButton داخل عمود القالب إلى 'تعديل' لتحرير 'حذف' لحذف و "تحديث" لتحديث القيام به. هذا وسوف تؤدي إلى GridView RowEditing، RowDeleting والأحداث RowUpdating على التوالي. لتشغيل الحدث RowCommand تحتاج إلى تعيين الخاصية OnRowCommand من تحكم GridView الخاص بك.

<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>

نصائح أخرى

وكان لي نفس المشكلة.

لتحرير، فعلت ما يلي:

        <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" />&nbsp;
                <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>

وانقر على الأعمدة في العقارات، إضافة CommandField(Edit,update,Cancel) وانقر على "تحويل هذا الحقل لtemplateField"

وSwich إلى المصدر وتلقائيا سوف إضافة رمز.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top