我有一些绑定到gridview的数据,并想知道是否可以检索选定行中的值并将这些值插入一系列文本框或标签。从选定的行gridview检索值
回答
是的,这是可能的。使用FindControl
方法
重复
谢谢!我会研究这一点。 – user1512593 2012-08-08 23:19:31
那么FindControl实际上是否可以找到gridview中每个单元格的单个值? – user1512593 2012-08-08 23:22:28
您可以在行或单元上使用它。例如'row.FindControl(“controlID”)'或'row.Cells [0] .FindControl(“coontrolID”)'。获取控件'TextBox txtName =(TextBox)row.FindContro(“txtName”)' – codingbiz 2012-08-08 23:27:19
正如@codingbiz说:你可以使用FindControl
和TemplateField
。
的例子:
EditGridView.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EditGridView.aspx.cs" Inherits="Q11874496WebApp.EditGridView" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:TemplateField HeaderText="Id" SortExpression="Id">
<ItemTemplate>
<asp:Label ID="LblId" runat="server" Text='<%# Bind("Id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" SortExpression="Name">
<ItemTemplate>
<asp:Label ID="Lblname" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Phone" SortExpression="Phone">
<ItemTemplate>
<asp:Label ID="LblPhone" runat="server" Text='<%# Bind("Phone") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
Id:
<asp:TextBox ID="TxtId" runat="server"></asp:TextBox>
Name:
<asp:TextBox ID="TxtName" runat="server"></asp:TextBox>
Phone:
<asp:TextBox ID="TxtPhone" runat="server"></asp:TextBox>
<asp:Button ID="BtnUpdate" runat="server" OnClick="BtnUpdate_Click" Text="Update" />
</form>
</body>
</html>
EditGridView.aspx.cs:
public partial class EditGridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
if (this.MyDataList.Count == 0)
{
this.populateData();
}
this.GridView1.DataSource = this.MyDataList;
this.GridView1.DataBind();
}
}
/// <summary>
/// Data for the GridView. Encapsulates a list that will be in session.
/// </summary>
public IList<MyDataPoco> MyDataList
{
get
{
if (this.Session["MyDataList"] == null)
this.Session["MyDataList"] = new List<MyDataPoco>();
return (IList<MyDataPoco>)this.Session["MyDataList"];
}
}
/// <summary>
/// Creates a list of 10 items.
/// </summary>
private void populateData()
{
for (int i = 0; i < 10; i++)
{
this.MyDataList.Add(
new MyDataPoco()
{
Id = i.ToString(),
Name = "Name " + i,
Phone = i + "" + i + "" + i + "." + i + "" + i + "" + i + "" + i + ""
});
}
}
/// <summary>
/// Here is the way you can get values from GridView.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow row = this.GridView1.SelectedRow;
Label LblId = (Label)row.FindControl("LblId");
Label LblName = (Label)row.FindControl("LblName");
Label LblPhone = (Label)row.FindControl("LblPhone");
this.TxtId.Text = LblId.Text;
this.TxtName.Text = LblName.Text;
this.TxtPhone.Text = LblPhone.Text;
}
/// <summary>
/// Updates the data in the GridView.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnUpdate_Click(object sender, EventArgs e)
{
if (this.GridView1.SelectedIndex < 0)
{
this.ClientScript.RegisterStartupScript(
this.GetType(),
"alert",
"alert('Select before...');", true);
}
else
{
MyDataPoco myDateItem = this.MyDataList[this.GridView1.SelectedIndex];
myDateItem.Id = this.TxtId.Text;
myDateItem.Name = this.TxtName.Text;
myDateItem.Phone = this.TxtPhone.Text;
this.GridView1.DataSource = this.MyDataList;
this.GridView1.DataBind();
}
}
}
MyDataPoco.cs:
public class MyDataPoco
{
public String Id { get; set; }
public String Name { get; set; }
public String Phone { get; set; }
}
- 1. 从GridView中检索一行
- 2. 从gridview中的usercontrol检索值
- 3. 从MySQL表的特定行检索值
- 4. 获取GridView中选定行的索引
- 5. ASP .NET - 从选定的Listview控件行中检索值?
- 6. 我想在gridview中的gridview中获取选定索引的值
- 7. 检索的GridView
- 8. ASP.NET Gridview:从选定的行获取PageIndex
- 9. 如何从GridView(C#)获取选定值
- 10. 从选定的行gridview获取单元格值
- 11. 无法检索GridView中rowdeleting的值
- 12. Gridview丢失行索引值
- 13. 检索MagicSelect MultiValue的选定值
- 14. 从api中检索ng选项的值
- 15. 检索从mysql的复选框值
- 16. Gridview删除选定的行
- 17. 删除选定的gridview行
- 18. GridView检索每一行中的数据
- 19. 从MySQL检索领域的GridView
- 20. GridView与从字节检索的图像
- 21. 如何检索woodstock表的选定行
- 22. 选定值出现在GridView
- 23. 检索ListView中指定行的值
- 24. C# - 从组合框中检索选定的值
- 25. 如何从django模板中定义的复选框检索值
- 26. 从下拉列表中检索选定的值laravel
- 27. 从下拉列表中检索选定的项目值
- 28. 如果不使用SelectedIndexChanged,如何从gridview检索每一行的值?
- 29. 从复选框中检索多个值
- 30. 从选择列表中检索值
是的,是的。 – EaterOfCode 2012-08-08 23:08:10