Я хотел бы отобразить детали строки сетки в другой панели, когда пользователь наводит курсор на строку. Я сомневаюсь, что это возможно с помощью кода, поэтому я использую javascript.
для этого простого примера, я хотел бы отобразить идентификатор и имя пользователя в «lblIdDetail» и «lblNameDetail», когда строка наведена поверх:
<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblId" Text=<%# Bind("id") %> runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblName" Text=<%# Bind("name") %> runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Panel ID="pnlDetails" runat="server">
<asp:Label ID="Label1" runat="server" Text="The hovered Id is: "></asp:Label>
<asp:Label ID="lblIdDetail" runat="server" Text="Label"></asp:Label>
<br />
<asp:Label ID="Label3" runat="server" Text="The hovered name is: "></asp:Label>
<asp:Label ID="lblNameDetail" runat="server" Text="Label"></asp:Label>
</asp:Panel>
Чтобы заполнить сетку фиктивными данными:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable sampleData = new DataTable();
sampleData.Columns.Add("id");
sampleData.Columns.Add("name");
sampleData.Rows.Add("1", "Dave");
sampleData.Rows.Add("2", "John");
sampleData.Rows.Add("3", "Jacob");
sampleData.Rows.Add("4", "Smith");
GridView1.DataSource = sampleData;
GridView1.DataBind();
}
}
Я очень неопытен в использовании javascript, поэтому я был бы признателен за максимально подробный ответ.
Спасибо: -)