Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 理解Gridview行命令_C#_Asp.net_Gridview - Fatal编程技术网

C# 理解Gridview行命令

C# 理解Gridview行命令,c#,asp.net,gridview,C#,Asp.net,Gridview,我编写了一个gridview,当我单击edit按钮时它不会启动,我发现了一个老问题,它通过在RowCommand方法下使用e.CommandName和if语句来解决我的问题。我正试图找出如何用我的代码实现它 我的问题是,如何在更新期间使用e.RowIndex查找我的控件并立即引用它们?此外,我尝试调用我的旧更新方法,但它不允许我使用sender和e作为参数,因为GridviewCommandEventArgs与GridViewEventUpdateArgs不同。我很迷茫,希望你能帮我解决这个问题

我编写了一个gridview,当我单击edit按钮时它不会启动,我发现了一个老问题,它通过在RowCommand方法下使用e.CommandName和if语句来解决我的问题。我正试图找出如何用我的代码实现它

我的问题是,如何在更新期间使用e.RowIndex查找我的控件并立即引用它们?此外,我尝试调用我的旧更新方法,但它不允许我使用sender和e作为参数,因为GridviewCommandEventArgs与GridViewEventUpdateArgs不同。我很迷茫,希望你能帮我解决这个问题

C#:

ASP.NET:

<div id="dvGrid" style="padding: 0px">
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:GridView ID="GridView1" DataKeyNames="PersonID" runat="server" AutoGenerateColumns="False"
                        Font-Names="Arial" Font-Size="10pt" AlternatingRowStyle-BackColor="blue" HeaderStyle-BackColor="aqua"
                        ShowFooter="true" OnRowEditing="EditCustomer" OnRowUpdating="UpdateCustomer"
                        OnRowCancelingEdit="CancelEdit" ShowHeaderWhenEmpty="true" Height="95px">
                        <Columns>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <%# Container.DataItemIndex + 1 %>
                                </ItemTemplate>
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="First Name">
                                <ItemTemplate>
                                    <asp:Label ID="lblFirstName" runat="server"  Height="20px" Text='<%# Eval("FirstName")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtFirstName"  runat="server" Text='<%# Eval("FirstName")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemStyle Width = "60px" />
                                <FooterTemplate>
                                    <asp:TextBox ID="txtFirstName" width="60px"  MaxLength="15" runat="server"></asp:TextBox>
                                </FooterTemplate>
                                </asp:TemplateField>

                            <asp:TemplateField  HeaderText="Last Name">
                                <ItemTemplate>
                                    <asp:Label ID="lblLastName" runat="server" Text='<%# Eval("LastName")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtLastName" runat="server" Text='<%#Bind("LastName")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox ID="txtLastName" width="60px" MaxLength="15" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField  HeaderText="Age">
                                <ItemTemplate>
                                    <asp:Label ID="lblAge" runat="server" Text='<%# Eval("Age")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtAge" runat="server" Text='<%# Eval("Age")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox ID="txtAge" Width="30px" MaxLength="2" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField  HeaderText="Activity Card">
                                <ItemTemplate>
                                    <asp:Label ID="lblActivityCard" runat="server" Text='<%# Eval("ActivityCard")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtActivityCard" runat="server" Text='<%# Eval("ActivityCard")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox ID="txtActivityCard" Width="50px" MaxLength="7" runat="server"></asp:TextBox>
                                </FooterTemplate>
                                </asp:TemplateField>
                            <asp:TemplateField  HeaderText="Cell Phone">
                                <ItemTemplate>
                                    <asp:Label ID="lblCell" runat="server" Text='<%# Eval("Cell#")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtCell" runat="server" Text='<%# Eval("Cell#")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox ID="txtCell" Width="70px" MaxLength="10" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField  HeaderText="Emergency Phone">
                                <ItemTemplate>
                                    <asp:Label ID="lblEmergency" runat="server" Text='<%# Eval("Emergency#")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtEmergency" runat="server" Text='<%# Eval("Emergency#")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox ID="txtEmergency" width="70px" MaxLength="10" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>               
                            <asp:TemplateField HeaderText="Boat Type">
                                <ItemTemplate>
                                    <asp:Label ID="lblBoat" runat="server" Text='<%# Eval("CraftType")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtBoat" runat="server" Text='<%# Eval("CraftType")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox ID="txtBoat" Width="80px" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField  HeaderText="Initials">
                                <ItemTemplate>
                                    <asp:Label ID="lblInitials" runat="server" Text='<%# Eval("Initials")%>'></asp:Label>
                                </ItemTemplate>
                                 <EditItemTemplate>
                                    <asp:TextBox ID="txtInitials" runat="server" Text='<%# Eval("Initials")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox ID="txtInitials" width="30px" MaxLength="2" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                             <asp:TemplateField  HeaderText="Group #">
                                <ItemTemplate>
                                    <asp:Label ID="lblGroup" runat="server" Text='<%# Eval("Group#")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtGroup" runat="server" Text='<%# Eval("Group#")%>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox ID="txtGroup" MaxLength="2" Width="20px" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:LinkButton ID="lnkRemove" runat="server" CommandArgument='<%# Eval("PersonID")%>'
                                        OnClientClick="return confirm('Are you sure you want to delete?')" Text="Delete"
                                        OnClick="DeleteCustomer"></asp:LinkButton>
                                        </ItemTemplate>
                                <FooterTemplate>
                                    <asp:Button ID="btnAdd" runat="server" Text="Submit" OnClick="AddNewCustomer" />
                                </FooterTemplate>
                            </asp:TemplateField>
                           <asp:TemplateField HeaderText="">
    <ItemTemplate>
        <asp:LinkButton ID="lnkEdit" runat="server" CommandName="Edit">Edit</asp:LinkButton>
    </ItemTemplate>
    <EditItemTemplate>
        <asp:LinkButton ID="lnkUpdate" runat="server" CommandName="Update">Update</asp:LinkButton>
        <asp:LinkButton ID="lnkCancel" runat="server" CommandName="Cancel">Cancel</asp:LinkButton>
    </EditItemTemplate> 
</asp:TemplateField>
                        </Columns>

                    </asp:GridView>

编辑
更新
取消

e.CommandArgument
将包含所单击行的索引,因此您可以通过

int index = Convert.ToInt32(e.CommandArgument);
GridView1.Rows[index].Controls[x];

您可以将
行索引
作为链接按钮的命令参数传递

 <EditItemTemplate>
    <asp:LinkButton ID="lnkUpdate" runat="server" CommandName="Update" CommandArgument='<%# Container.DataItemIndex %>'>Update</asp:LinkButton>
    <asp:LinkButton ID="lnkCancel" runat="server" CommandName="Cancel" CommandArgument='<%# Container.DataItemIndex %>'>Cancel</asp:LinkButton>
</EditItemTemplate> 

你使用的是
@DennisR吗?我把它们设置为链接按钮,是的。我发布了gridview的ASP.NET代码。谢谢。这已经不是你第一次帮助我了。我正在自己编写我的第一个应用程序。你愿意帮我走出去,当我的导师吗?也许只是允许我给你发电子邮件,告诉你我遇到的问题?如果你不想承担那种责任,我理解。感谢您的考虑。@user3267755乐于帮助:)我直到现在才意识到我已经回答了您的一些问题(因为您的会员id没有在我的脑海中注册)。自从我为webforms编写代码以来已经有好几年了,因为我更喜欢Asp.NETMVC。我知道那里有很多专家,所以他们肯定会用他们不同的观点来帮助你解决问题,而不仅仅是我来指导你。感谢您的鼓励和友好的话语。:)@用户3267755我的个人资料中有我的电子邮件。你可以通过电子邮件提出问题,如果时间允许,我会尽力解决。
 <EditItemTemplate>
    <asp:LinkButton ID="lnkUpdate" runat="server" CommandName="Update" CommandArgument='<%# Container.DataItemIndex %>'>Update</asp:LinkButton>
    <asp:LinkButton ID="lnkCancel" runat="server" CommandName="Cancel" CommandArgument='<%# Container.DataItemIndex %>'>Cancel</asp:LinkButton>
</EditItemTemplate> 
void RowCommand(Object sender, GridViewCommandEventArgs e)
{ 
    int rowindex = Convert.ToInt32(e.CommandArgument);

    if (e.CommandName == "Update")
    {
      ....
    }

    if (e.CommandName == "Cancel")
    {
      ....
    }
}