SQLDataSource + GridView + ItemTemplate + JavaScript DOM 使用方法
Default.aspx |
<%@ Page Title="首頁" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication9._Default" %> <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> <script type="text/javascript"> //<![CDATA[ function ShowMenu(obj){ var ControlID = obj.id; var RowNumber = ControlID.replace("MainContent_GridView1_HyperLink1_", ""); //var AllRowCount = document.getElementById("MainContent_Label33").innerHTML; var AllRowCount = 10; ControlID = ControlID.replace("MainContent_GridView1_HyperLink1_", "MainContent_GridView1_L3_"); for(i=0;i<(parseInt(AllRowCount)+1);i++){ if (i == parseInt(RowNumber)) { document.getElementById(ControlID).setAttribute("style", "display:"); document.getElementById(ControlID).innerHTML = i.toString(); } else { document.getElementById("MainContent_GridView1_L3_" + i).setAttribute("style", "display:none"); } } } //]]> </script> </asp:Content> <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <%−− <asp:Label ID="Label33" runat="server" Text="" style="display:none" /> −−%> <asp:Label ID="Label44" runat="server" Text="" style="display:" /> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="Data Source=.\SqlExpress; Initial Catalog=Soccer; Integrated Security=SSPI" SelectCommand="SELECT * FROM Team;" /> <asp:GridView ID="GridView1" runat="server" AllowPaging="true" PageSize="10" DataSourceID="SqlDataSource2" AutoGenerateColumns="false"> <Columns> <asp:CommandField ShowSelectButton="true" SelectText="Select" /> <asp:TemplateField HeaderText="Team ID" Visible="false"> <ItemTemplate> <asp:Label ID="L1" runat="server" Text='<%# Eval("Team_ID") %>'/> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Team Name"> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("Team_Name") %>' NavigateUrl="#" onclick="ShowMenu(this);" /> <br /> <asp:Label ID="L3" runat="server" Text="" style="display:none" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </asp:Content> |
Default.aspx.cs |
using System; using System.Web; using System.Web.UI.WebControls; namespace WebApplication9 { public partial class _Default : System.Web.UI.Page { protected void Page_Init(object sender, EventArgs e) { GridView1.SelectedIndexChanged += new EventHandler(GridView1_SelectedIndexChanged); } protected void Page_Load(object sender, EventArgs e) { //Label33.Text = GridView1.Rows.Count.ToString(); } void GridView1_SelectedIndexChanged(object sender, EventArgs e) { int GridViewSelectedIndex = ((GridView)sender).SelectedIndex; HyperLink TeamHyperLink = (HyperLink)((GridView)sender).Rows[GridViewSelectedIndex].Cells[2].Controls[1]; Label44.Text = TeamHyperLink.Text; } } } |