사용자가 행 위에 마우스를 올려 놓았을 때 다른 패널에 gridview 행의 세부 정보를 표시하고 싶습니다. 뒤에 코드를 통해 가능하다는 것을 의심, 그래서 자바 스크립트를 사용 찾고 있습니다. 행이 이상 마우스가있을 때gridview 행 마우스 오버시 다른 행에 행 데이터를 표시하고 싶습니다.
이 간단한 예를 들어, 나는 "lblIdDetail"와 "lblNameDetail"에서 사용자의 ID와 이름을 표시하고 싶습니다 :
<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();
}
}
저는 자바 스크립트를 사용하여 매우 익숙하지 않으므로 가능한 한 자세한 답변을 제공해 주시면 감사하겠습니다. ,
//pass the needed row contens into showContents
e.Row.Attributes["onmouseover"] = "showContents(arg1, arg2, arg3)";
난 당신이 레이블에 표시 할 열의 데이터 키를 추가 할 수의 값을 끌어 :이처럼 RowDataBound 이벤트에 마우스 오버 이벤트를 추가 할 수 있습니다
내가 오전 알고 유사한 기사가 아주 늦은 코멘트가 있지만 다른 사람들에게 유용합니다. 예를 들어 gridview row mouse-over는 jquery가있는 부동 div의 세부 정보를 표시하지만 버튼을 마우스 오버하는 대신 사용자가 각 행에 마우스를 올리면 데이터가 표시됩니다. http://codepedia.info/2015/04/gridview-row-mouseover-show-detail-data-in-floating-div-asp-net-c-jquery/ –