Repeater裡的點選事件
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="DownLoadCompositerMoreTableRepeater.ascx.cs" Inherits="CE.TourismIndustryWebsite.ExplainProscenium.strProsceniumUserControl.DownLoadCompositerMoreTableRepeater" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<%@ Register TagPrefix="cc1" Namespace="CE.TourismIndustryWebsite.PagerControl" Assembly="AspNetPager" %>
<%@ Import namespace="System.Data"%>
<%@ Import namespace="System"%>
<asp:repeater id="rptDownLoadCompositer" runat="server" OnItemCommand="showItem">
<HeaderTemplate>
<table>
<tr>
<td>推薦
</td>
<td>標識圖
</td>
<td>檔名稱
</td>
<td>講解地區
</td>
<td>檔案大小
</td>
<td>下載次數
</td>
<td>下載
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lblID" Runat="server" Visible=False Text='<%# DataBinder.Eval(Container.DataItem,"id")%>'>
</asp:Label><%# DataBinder.Eval(Container.DataItem,"is_recommendation")%>
</td>
<td><a href="../ExamWindows/DownloadNumRangeInfo.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"id")%>"><img src="<%# DataBinder.Eval(Container.DataItem,"pic_path")%>"></a>
</td>
<td><%# DataBinder.Eval(Container.DataItem,"name")%>
</td>
<td><%# (DataBinder.Eval(Container.DataItem,"are_name")).ToString().Replace("縣","")%>
</td>
<td><%# GetFormatString((double)DataBinder.Eval(Container.DataItem,"sizes"))%>
</td>
<td><%# DataBinder.Eval(Container.DataItem,"down_times")%>
</td>
<td>
<asp:LinkButton ID="lnkbtn" Runat="server" CommandName="download" Text="download" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "id") %>'>
</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:repeater>
<cc1:aspnetpager id="AspNetPager1" runat="server" PageSize="5" ShowInputBox="Always" ShowPageIndex="False"
PrevPageText="上一頁" NextPageText="下一頁" LastPageText="末頁" FirstPageText="首頁" InputBoxStyle="border:1px #0000FF solid;text-align:center"
SubmitButtonStyle="border:1px solid #000066;height:20px;width:25px" NumericButtonTextFormatString="[{0}]"
TextAfterInputBox="頁" TextBeforeInputBox="第" ShowCustomInfoSection="Left" AlwaysShow="true" HorizontalAlign="Right"
Font-Size="XX-Small"></cc1:aspnetpager>
namespace CE.TourismIndustryWebsite.ExplainProscenium.strProsceniumUserControl
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;
using WindICFrameNet.Data;
using CE.TourismIndustryWebsite.PagerControl;
/// <summary>
/// DownLoadCompositerMoreTableRepeater 的摘要說明。
/// </summary>
public class DownLoadCompositerMoreTableRepeater : System.Web.UI.UserControl
{
#region 變數
protected System.Web.UI.WebControls.Repeater rptDownLoadCompositer;
private WindICFrameNet.Data.DataHelper dataHelper;
protected CE.TourismIndustryWebsite.PagerControl.AspNetPager AspNetPager1;
private string search;
private string curId;
#endregion
#region 屬性
public string CurID
{
get
{
return curId;
}
set
{
curId = value;
}
}
public string Search
{
get
{
return search;
}
set
{
search = value;
}
}
#endregion
#region 方法
public static string GetFormatString(double size)
{
string sizeString;
if (size >= 1048576)
{
sizeString = (Math.Round(size/1048576, 2)+" MB");
}
else if (size >= 1024)
{
sizeString = (Math.Round(size/1024, 2)+" KB");
}
else
{
sizeString = (size+" B");
}
return sizeString;
}
public void GetCompositorData(int PageNo)
{
int iPageCount;
int iRecordCount;
Search = "";
dataHelper = new WindICFrameNet.Data.DataHelper("TourismIndustryWebsite");
DataTable dt = dataHelper.ExecuteCustomPage("downloadExplanationFileList","id",""+Search+"","",this.AspNetPager1.PageSize,PageNo,1,out iPageCount,out iRecordCount).Tables[0];
this.AspNetPager1.RecordCount = iRecordCount;
this.AspNetPager1.CurrentPageIndex = PageNo;
rptDownLoadCompositer.DataSource=dt;
rptDownLoadCompositer.DataBind();
}
#endregion
#region 事件
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
GetCompositorData(1);
}
}
#region 翻頁處理
private void AspNetPager1_PageChanged_1(object src, CE.TourismIndustryWebsite.PagerControl.PageChangedEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
GetCompositorData(e.NewPageIndex);
StringBuilder sb = new StringBuilder("<script Language=/"Javascript/"><!--/n");
sb.Append("var el=document.all;");
sb.Append(".scrollIntoView(true);");
sb.Append("<");
sb.Append("/");
sb.Append("script>");
if(!Page.IsStartupScriptRegistered("scrollScript"))
Page.RegisterStartupScript("scrollScript",sb.ToString());
}
#endregion
#endregion
#region Web 窗體設計器生成的程式碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該呼叫是 ASP.NET Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 設計器支援所需的方法 - 不要使用程式碼編輯器
/// 修改此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.AspNetPager1.PageChanged += new CE.TourismIndustryWebsite.PagerControl.PageChangedEventHandler(this.AspNetPager1_PageChanged_1);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public void showItem ( Object src, RepeaterCommandEventArgs e )
{
// rptDownLoadCompositer.items.Text = e.Item.ItemType.ToString ( ) + " " +
// e.Item.ItemIndex.ToString ( ) + ", " +
// ( ( LinkButton ) e.CommandSource ).Text + "<br>";
// string a = e.CommandArgument.ToString();
}
private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{}
private void Repeater1_ItemCreated(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{}
}
private void Repeater1_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
int x = int.Parse(e.CommandArgument.ToString());
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if(e.CommandName == "download")
{
string a = e.CommandArgument.ToString();
Response.Redirect("../ExamWindows/DownloadNumRangeInfo.aspx?ID=a");
}
}
}
}
}
------------------------------------------------------------------------------------------------------------------------------------------------
我說的夠清楚了
首先新增按鈕,然後按鈕的commandname 你得賦值方便後面處理按鈕的單擊事件
然後在repeater事件裡面寫按鈕的單擊事件程式碼
<ItemTemplate>
<TABLE id="Table3" style="WIDTH: 197px; HEIGHT: 27px" cellSpacing="1" cellPadding="1" width="197"
align="center" border="0">
<TR>
<TD>
<asp:LinkButton id=btnSelect runat="server" ForeColor="MidnightBlue" CommandName="edit">
</asp:LinkButton></TD>
</TR>
</TABLE>
</ItemTemplate>
因為我用的是datalist而且button的commandname是edit所以是在datalist的editcommand事件裡面寫單擊按鈕的事件程式碼!!!!!
不過repeater是一樣的
private void DataList1_EditCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
//連結查詢
LinkButton select =(LinkButton)e.Item.FindControl("btnSelect");
string DeptType = select.ToolTip.Trim();
int Index = DeptType.IndexOf("_");
string DeptTypeId = DeptType.Substring(0,Index);
Response.Redirect("DeptPhoneQuery.aspx?id="+DeptTypeId);
//Redirect
}
指定裡面的repeater的ItemCommand事件
such as:
Repeater in_repeater=OuterRepeater.Controls.Find("InsideRepeater");
in_repeater.ItemCommand += new .....
button(linkbutton,imagebutton)控制元件型別的事件已經上傳到父控制元件了,ItemCommand 可以接收到上傳的事件。其他型別的控制元件可呼叫raisebubbleevent來上傳事件。