C# 具有更新功能的C Linq到datagrid
我想做一个datagrid,它允许用户编辑当前信息并添加新内容。我还需要它有一个复选框在那里,我可以回应。基本上,它是一个名称和一个isActive字段,由datagrid每行中的一个复选框表示 我想使用linq来实现这一点,但不确定这是否可行。这是一个ASP.Net网站 如果有人有任何反馈,那就太棒了。很容易做到 GridView中有许多事件,您可以将这些事件用于特定的删除、编辑、取消和更新操作。例如,onrowUpdate和OnRowEditing的外观如下所示:C# 具有更新功能的C Linq到datagrid,c#,linq,datagrid,C#,Linq,Datagrid,我想做一个datagrid,它允许用户编辑当前信息并添加新内容。我还需要它有一个复选框在那里,我可以回应。基本上,它是一个名称和一个isActive字段,由datagrid每行中的一个复选框表示 我想使用linq来实现这一点,但不确定这是否可行。这是一个ASP.Net网站 如果有人有任何反馈,那就太棒了。很容易做到 GridView中有许多事件,您可以将这些事件用于特定的删除、编辑、取消和更新操作。例如,onrowUpdate和OnRowEditing的外观如下所示: <asp:GridV
<asp:GridView ID="gvTest" runat="Server" OnRowUpdating="gvTest_RowUpdating" OnRowEditing="gvTest_RowEditing">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnUpdate" runat="Server" Text="Update" CommandName="Update">
<asp:Button ID="btnEdit" runat="Server" Text="Edit" CommandName="Edit">
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void gvTest_RowUpdating(object sender, GridViewUpdateEventArgs e) {
// Convenient access to the row index that was selected
int theRowIndex = e.RowIndex;
GridViewRow gvr = gvTest.Rows[e.RowIndex];
// Now its just a matter of tracking down your various controls in the row and doing
// whatever you need to with them
TextBox someTxtBox = (TextBox)gvr.FindControl("theTextBoxID");
DropDownList someDDL = (DropDownList)gvr.FindControl("theDDL_ID");
// Perhaps some business class that you have setup to take the value of the textbox
// and insert it into a table
MyDoSomethingClass foo = new MyDoSomethingClass {
FirstName = someTxtBox.Text,
Age = someDDL.SelectedItem.Value
};
foo.InsertPerson();
}
请注意,您也可以使用onrow命令而不是使用Update Edit、Delete等事件,但是onrow命令没有现成的选定行索引。如果你想要它,那么你必须在你的标记中做一点魔术
<asp:Button ID="btnDoSomething" runat="Server" Text="Do Something" CommandArgument="<%# Container.DataItemIndex %>" CommandName="DoSomething">
编辑:
实际上,访问GridView绑定到的键非常简单。假设您的GridView仅绑定到一个键,您可以通过以下方式获取键:假设我们处于RowCommand事件中:
int rowIdx = Convert.ToInt32(e.CommandArgument);
int someKeyID = Convert.ToInt32(gvTest.DataKeys[rowIdx].Value);
很容易做到
GridView中有许多事件,您可以将这些事件用于特定的删除、编辑、取消和更新操作。例如,onrowUpdate和OnRowEditing的外观如下所示:
<asp:GridView ID="gvTest" runat="Server" OnRowUpdating="gvTest_RowUpdating" OnRowEditing="gvTest_RowEditing">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnUpdate" runat="Server" Text="Update" CommandName="Update">
<asp:Button ID="btnEdit" runat="Server" Text="Edit" CommandName="Edit">
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void gvTest_RowUpdating(object sender, GridViewUpdateEventArgs e) {
// Convenient access to the row index that was selected
int theRowIndex = e.RowIndex;
GridViewRow gvr = gvTest.Rows[e.RowIndex];
// Now its just a matter of tracking down your various controls in the row and doing
// whatever you need to with them
TextBox someTxtBox = (TextBox)gvr.FindControl("theTextBoxID");
DropDownList someDDL = (DropDownList)gvr.FindControl("theDDL_ID");
// Perhaps some business class that you have setup to take the value of the textbox
// and insert it into a table
MyDoSomethingClass foo = new MyDoSomethingClass {
FirstName = someTxtBox.Text,
Age = someDDL.SelectedItem.Value
};
foo.InsertPerson();
}
请注意,您也可以使用onrow命令而不是使用Update Edit、Delete等事件,但是onrow命令没有现成的选定行索引。如果你想要它,那么你必须在你的标记中做一点魔术
<asp:Button ID="btnDoSomething" runat="Server" Text="Do Something" CommandArgument="<%# Container.DataItemIndex %>" CommandName="DoSomething">
编辑:
实际上,访问GridView绑定到的键非常简单。假设您的GridView仅绑定到一个键,您可以通过以下方式获取键:假设我们处于RowCommand事件中:
int rowIdx = Convert.ToInt32(e.CommandArgument);
int someKeyID = Convert.ToInt32(gvTest.DataKeys[rowIdx].Value);
我得到了“GridViewUpdateEventArgs不包含RowIndex的定义”感谢您花时间回复此问题。你说我可以找到控件,我只是通过模板添加控件吗?我需要显示一个名称和一个isActive字段,差不多就是这样。我希望他们能够编辑并删除内容。@Blake-我不确定为什么RowIndex属性对您不可用。自从GridView随ASP.NET 2.0发布以来,它一直是EventArgs的一个属性。您使用的是哪种框架?@Jagd抱歉,我没有尽快回复。这是.NET4,老实说,我不知道为什么。我不想重新创建整个项目,因为它非常大,而且要设置@$$非常麻烦。如果你有任何建议,那就太好了。即使构建一个自定义的问题也可以。我唯一能想到的建议是编辑您的原始问题并包含一些代码,也许这会让您了解一些事情。德国劳埃德船级社!我得到了“GridViewUpdateEventArgs不包含RowIndex的定义”感谢您花时间回复此问题。你说我可以找到控件,我只是通过模板添加控件吗?我需要显示一个名称和一个isActive字段,差不多就是这样。我希望他们能够编辑并删除内容。@Blake-我不确定为什么RowIndex属性对您不可用。自从GridView随ASP.NET 2.0发布以来,它一直是EventArgs的一个属性。您使用的是哪种框架?@Jagd抱歉,我没有尽快回复。这是.NET4,老实说,我不知道为什么。我不想重新创建整个项目,因为它非常大,而且要设置@$$非常麻烦。如果你有任何建议,那就太好了。即使构建一个自定义的问题也可以。我唯一能想到的建议是编辑您的原始问题并包含一些代码,也许这会让您了解一些事情。德国劳埃德船级社!