当用户单击一行变成蓝色时,我有一个datagriview。我查询了标头名称为“ armario”的特定单元格的信息,如何获得该值,以便以后可以在新窗口中使用它。
这是我在后端的代码:
protected void OnSelectedIndexChanged(object sender, EventArgs e)
{
Color myRgbColor = new Color();
myRgbColor = Color.FromArgb(27,155,255);
foreach (GridViewRow row in editingGrid.Rows)
{
if (row.RowIndex == editingGrid.SelectedIndex)
{
row.BackColor = myRgbColor;
}
else
{
row.BackColor = System.Drawing.Color.White;
}
}
}
这里是我想要我在前端:
<asp:TemplateField HeaderText="Armario" SortExpression="armario">
<ItemTemplate>
<asp:Label Text='<%# Eval("armario") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCloset" Text='<%# Eval("armario") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateField>
答案 0 :(得分:0)
这是我在前端所做的,添加了一个ID。
<asp:TemplateField HeaderText="Armario" SortExpression="armario">
<ItemTemplate>
<asp:Label ID="tblCloset" Text='<%# Eval("armario") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCloset" Text='<%# Eval("armario") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateField>
这就是我想在后端做的事情。
protected void OnSelectedIndexChanged(object sender, EventArgs e)
{
Color myRgbColor = new Color();
myRgbColor = Color.FromArgb(27,155,255);
foreach (GridViewRow row in editingGrid.Rows)
{
if (row.RowIndex == editingGrid.SelectedIndex)
{
row.BackColor = myRgbColor;
closet= (editingGrid.SelectedRow.FindControl("tblCloset") as Label).Text; //This is the only line I had to changed in the backend.
}
else
{
row.BackColor = System.Drawing.Color.White;
}
}
}
我在这里https://www.aspsnippets.com/Articles/How-to-get-Selected-Row-cell-value-from-GridView-in-ASPNet.aspx找到了解决方法