怎样在自定义控件中加超连接?思归?

ahking 2003-07-15 05:12:51
如下:
protected override void Render(HtmlTextWriter htw)
{
htw.RenderBeginTag(HtmlTextWriterTag.Tr);
htw.RenderBeginTag(HtmlTextWriterTag.Td);
htw.AddAttribute(HtmlTextWriterAttribute.Href,"aaa.aspx");
htw.Write("aaaaaa");
htw.RenderEndTag();
}
引用后该控件后没有作用,并且我想将一个参数传给aaa.aspx,怎么做
...全文
80 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahking 2003-07-21
  • 打赏
  • 举报
回复
up
ahking 2003-07-21
  • 打赏
  • 举报
回复
up
ahking 2003-07-19
  • 打赏
  • 举报
回复
你看在如下位置怎样做::
protected override void Render(HtmlTextWriter htw)
{

htw.RenderBeginTag(HtmlTextWriterTag.Table);
for (int i=nStartcount; i < dtbname.Rows.Count; i++)
{
htw.Write("<tr>");

for (int j=1; j < Columnum; j++)
{
htw.Write("<td>");
htw.Write(dtbname.Rows[i][j].ToString());
htw.Write("</td>");

}

htw.Write("</tr>");

}
htw.Write("<tr>");
htw.Write("<td>");

//这里写linkbutton控件

htw.Write("</td>");
htw.Write("</tr>");
}
saucer 2003-07-19
  • 打赏
  • 举报
回复
protected override void CreateChildControls()
{
//add your table here, then add the buttons
Controls.Add(YourTable);

int nTotalCount=Dtbname.Rows.Count;
nTotalPage = nTotalCount/PageSize;
nTotalPage += nTotalCount % PageSize > 0? 1:0;
LinkButton[] GoPage=new LinkButton[nTotalPage+2];
for(int n=1;n<=nTotalPage;n++)
{
GoPage[n]=new LinkButton();
GoPage[n].Text=n.ToString();
GoPage[n].ID="GoPage"+n.ToString();
GoPage[n].Click+=new EventHandler(this.Gopageclicked);
YourTable.Rows[.....].Cells[....].Controls.Add(GoPage[n]);


}
ahking 2003-07-19
  • 打赏
  • 举报
回复
思归:我先创建了控件:
protected override void CreateChildControls()
{
int nTotalCount=Dtbname.Rows.Count;
nTotalPage = nTotalCount/PageSize;
nTotalPage += nTotalCount % PageSize > 0? 1:0;
LinkButton[] GoPage=new LinkButton[nTotalPage+2];
for(int n=1;n<=nTotalPage;n++)
{
GoPage[n]=new LinkButton();
GoPage[n].Text=n.ToString();
GoPage[n].ID="GoPage"+n.ToString();
GoPage[n].Click+=new EventHandler(this.Gopageclicked);


}


}
然后定义事件方法:
private void Gopageclicked(Object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
nStartcount=PageSize*(System.Convert.ToInt16(lb.ID.Substring(6))-1);

}
最后想把控件(那几个linkbutton)放到表格的最后一行,不会干了,前面的写法合理么??
webdiyer 2003-07-18
  • 打赏
  • 举报
回复
可以去 www.webdiyer.com 下载我写的一个免费分页控件,1.0版的源代码中有你要的功能。
saucer 2003-07-18
  • 打赏
  • 举报
回复
use the same handler

GoPage[n].Click += new EventHandler(this.Gopageclicked);

void Gopageclicked(object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
if (lb.ID.Substring(6) == "1")
....
}
ahking 2003-07-18
  • 打赏
  • 举报
回复
思归:如果事件这样添加,其对应的方法怎样写合理?
for(int n=1;n<=nTotalPage;n++)
{
GoPage[n]=new LinkButton();
GoPage[n].Text=n.ToString();
GoPage[n].ID="GoPage"+n.ToString();
GoPage[n].Click+=new EventHandler(this.Gopage[n]clicked);
}
就是由循环添加方法,我不知道在类中怎样做?
ddangerous169 2003-07-18
  • 打赏
  • 举报
回复
看到大家说的这么多,水平很高呀
自已简直是泡屎,问各位工资多少呀?
saucer 2003-07-17
  • 打赏
  • 举报
回复
if you don't like Button, replace them with LinkButton, everything should still work
saucer 2003-07-17
  • 打赏
  • 举报
回复
here is an example:

1. PageControl.cs (compile into CustomControls.dll):

using System;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CustomControls
{
public class PageControl : Control, INamingContainer
{
Button btnPrev;
Button btnNext;
Table tblContent;

int nTotalPage = 0;

public int CurrentPageIndex
{
get
{
if (ViewState["CurrentPageIndex"] == null)
return 0;
return (int)ViewState["CurrentPageIndex"];
}
set
{
ViewState["CurrentPageIndex"] = value;
}
}

public int PageSize
{
get
{
if (ViewState["PageSize"] == null)
return 0;
return (int)ViewState["PageSize"];
}
set
{
ViewState["PageSize"] = value;
}
}

public int StartIndex
{
get
{
if (ViewState["StartIndex"] == null)
return 0;
return (int)ViewState["StartIndex"];
}
set
{
ViewState["StartIndex"] = value;
}
}

public int EndIndex
{
get
{
if (ViewState["EndIndex"] == null)
return 0;
return (int)ViewState["EndIndex"];
}
set
{
ViewState["EndIndex"] = value;
}
}


protected override void CreateChildControls()
{
nTotalPage = (EndIndex + 1 - StartIndex)/PageSize;
nTotalPage += (EndIndex + 1 - StartIndex) % PageSize > 0? 1:0;

Controls.Add(new LiteralControl("<h3>Hello World</h3>"));

tblContent = new Table();


Controls.Add(tblContent);

btnPrev = new Button();
btnPrev.ID = "btnPrev";
btnPrev.Text = "Previous";
btnPrev.Click += new EventHandler(this.PreviousButtonClicked);
Controls.Add(btnPrev);

Controls.Add(new LiteralControl(" "));

btnNext = new Button();
btnNext.ID = "btnNext";
btnNext.Text = "Next";
btnNext.Click += new EventHandler(this.NextButtonClicked);
Controls.Add(btnNext);


}

private void PreviousButtonClicked(Object sender, EventArgs e)
{
if (CurrentPageIndex >0)
CurrentPageIndex--;
}

private void NextButtonClicked(Object sender, EventArgs e)
{
if (CurrentPageIndex < nTotalPage )
CurrentPageIndex++;
}

protected override void OnPreRender(System.EventArgs e)
{
int nStart = StartIndex + CurrentPageIndex*PageSize;
int nEnd = StartIndex + (CurrentPageIndex+1)*PageSize;
if (nEnd > EndIndex)
nEnd = EndIndex+1;

for (int i= nStart; i < nEnd; i++)
{
TableRow tr = new TableRow();
TableCell tc = new TableCell();
tc.Text = i.ToString();
tr.Cells.Add(tc);
tblContent.Rows.Add(tr);
}

btnPrev.Visible = CurrentPageIndex != 0;
btnNext.Visible = CurrentPageIndex < nTotalPage - 1 ;
}
}

}


2. webform.aspx:

<%@ Register TagPrefix="cc2" Namespace="CustomControls" Assembly="CustomControls" %>
<HTML>
<body>
<form id="WebForm2" method="post" runat="server">
<cc2:PageControl id="PageControl1" runat="server" PageSize="10" StartIndex="1" EndIndex="100"></cc2:PageControl>
</form>
</body>
</HTML>
ahking 2003-07-17
  • 打赏
  • 举报
回复
各位的介绍都是针对datagrid的,我想知道自定义控件的啊,就是自己怎么加分页连接:
for (i=n,i<1000,i++)
{
.....
}
加入文字,点击它然后n随之变成10,点击另一个然后n随之变成20,........

liuzhonghe 2003-07-17
  • 打赏
  • 举报
回复
see webdiyer's Wuqi.Webdiyer.AspNetPager control
saucer 2003-07-17
  • 打赏
  • 举报
回复
把编码从第二个连接里下载下来,玩玩就会了
ahking 2003-07-17
  • 打赏
  • 举报
回复
英文的,看着很吃力啊
saucer 2003-07-17
  • 打赏
  • 举报
回复
see a customized datagrid which supports paging/sorting

http://msdn.microsoft.com/msdnmag/issues/01/10/cutting/default.aspx

http://dn.yyyz.net/DnYzArticleShow.aspx?WA=13
ahking 2003-07-17
  • 打赏
  • 举报
回复
this up
ahking 2003-07-17
  • 打赏
  • 举报
回复

for (i=n,i<1000,i++)
{
.....
}
在web控件中加入文字,点击它然后n随之变成10,点击另一个然后n随之变成20,........
怎么做??
ahking 2003-07-17
  • 打赏
  • 举报
回复
up,down
淡蓝色2 2003-07-16
  • 打赏
  • 举报
回复
down
加载更多回复(11)

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧