点button1创建linkbutton的,为什么连接失效,有多个这样的linkbutton要创建,有好的办法吗

光原 2006-11-02 04:27:56
private void lb_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)
{
Response.Write("<script>alert('"+e.CommandName+"');</script>");
}

private void Button1_Click(object sender, System.EventArgs e)
{
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell c = new HtmlTableCell();
c.Attributes.Add("width","40");
System.Web.UI.WebControls.LinkButton lb = new System.Web.UI.WebControls.LinkButton();
lb.ID = "lblxxx";
lb.Text = "a";
lb.CommandName = "a";
lb.Command += new CommandEventHandler(lb_Command);
c.Controls.Add(lb);
row.Cells.Add(c);
Table1.Rows.Add(row);
}
...全文
184 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
光原 2006-11-03
  • 打赏
  • 举报
回复
TO:qltouming(缘木渔人) 非常感谢!
现在的问题是:所有的linkbutton都来自数据库,不能确定具体的数量。
我的界面是这样设计的:




主页是这样设计的分上中下三个部分,中间分左右两部分,全部使用table做的,
现在要求在右边的table里进行内容的动态增加和删除页面内容,

比如点主页上部分的菜单,右边的内容先全部清除,重新动态增加页面内容,内容中包括多个linkbutton,当点击其中一个linkbutton时,

再把右边的内容先全部清除,重新动态增加页面内容,内容中包括多个linkbutton,当点击其中一个linkbutton时,

再把右边的内容先全部清除,这时候生成一个文本给用户,有点像下载站点的样子,但是所有的东西
所有的都要求在一个页面操作

包装成控件不知道如何做,控件也同样要new出来,同样存在这个通过连接来加载控件的问题?
qltouming 2006-11-03
  • 打赏
  • 举报
回复
如果我这么写,相信你会更好理解的
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (this.Table1.Rows.Count <= 1)
{
AddControl();
}
}
}
qltouming 2006-11-03
  • 打赏
  • 举报
回复
我有在Button1的点击中添加按钮.
但是当按钮点击触发页面刷新的时候,你新添的按钮会因为再次PageLoad而不存在的,因此有必要在Page_Load里根据条件进行判断,以重新加载按钮.

如果你这种需求在多处都有,建议你最好包装成控件
如果只是此处有这个需要,并且要添加多个,那么我的做法完全能满足,我工作中有这样的需求,我就是这么做的
如果可以,建议添加按钮的操作不要由按钮来触发,让用户在一个界面中先行配置后再予以显示,这个做法更安全可靠且可维护.
如果有必要非这么实现的话,注意在添加多个按钮时,如要保证界面整齐美观,要注意表格的嵌套,只简单的在Table中Add Row是不行的.
光原 2006-11-03
  • 打赏
  • 举报
回复
ding
光原 2006-11-03
  • 打赏
  • 举报
回复
ding
光原 2006-11-03
  • 打赏
  • 举报
回复
ding
光原 2006-11-02
  • 打赏
  • 举报
回复
TO:qltouming(缘木渔人)
因为你的添加事件是在page_load中,如果不在page_load中你试试看好使不?
我的有多极创建多个linkbutton,不能在page_load中做
看看各位有什么好的办法实现
qltouming 2006-11-02
  • 打赏
  • 举报
回复
对照下你的代码吧,很可能是按钮引发页面刷新时没有重新添加按钮或挂接上点击链接事件
qltouming 2006-11-02
  • 打赏
  • 举报
回复
我这么写怎么好使
--------------------------
//aspx页
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<table id = "Table1" runat="server">
<tr>
<td>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
</td>
</tr>
</table>
</form>
</body>
</html>


//cs页
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (this.Table1.Rows.Count <= 1)
{
AddControl();
}
}

private void AddControl()
{
HtmlTable _table = new HtmlTable();
HtmlTableRow _row = new HtmlTableRow();
HtmlTableCell _cell = new HtmlTableCell();
_cell.Controls.Add(_table);
_row.Cells.Add(_cell);

HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell1 = new HtmlTableCell();
HtmlTableCell cell2 = new HtmlTableCell();

row.Cells.Add(cell1);
row.Cells.Add(cell2);

Button btn1 = new Button();
Button btn2 = new Button();

btn1.Text = "Button1";
btn2.Text = "Button2";
btn1.Width = 80;
btn2.Width = 80;

btn1.CommandName = "a";
btn1.Command += new CommandEventHandler(lb_Command);

cell1.Controls.Add(btn1);
cell2.Controls.Add(btn2);

_table.Rows.Add(row);

this.Table1.Rows.Insert(0, _row);
}

private void lb_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)
{
Response.Write("<script>alert('" + e.CommandName + "');</script>");
}

protected void Button1_Click(object sender, System.EventArgs e)
{
AddControl();
}
}
qltouming 2006-11-02
  • 打赏
  • 举报
回复
连接失效----到底是怎么个现象?
ExtAspNet v3.1.0源码 ExtAspNet 是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果。 目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 注:ExtAspNet 基于一些开源程序,比如ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor. 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 历史升级 +2012-03-04 v3.1.0 -修正Hidden属性失效的问题。 -为PageManager增加EnableAspnetSubmitButtonAjax属性。 -修正了在IE9兼容模式以及IE7和IE8下面,IFrame的Tab页在第二次打开时显示空白的问题。 -修正Grid在第一个列设置为RenderAsRowExpander时排序出现的问题。 +为可回发控件增加EnableAjaxLoading属性,用来控制是否显示Ajax提示信息。 -同时注意PageManager有相同的属性来控制页面级别的行为。 +启用Visible属性,但请尽量不要使用这个属性除非你理解它的工作原理。 -为了解决ExtJS本身的一个问题——如果单选框列表或者复选框列表中没有任何一项,就会出现JS错误。 -你需要手动将那些没有任何项的单选框列表或者复选框列表的Visible属性设置false来解决这个问题。 -为了能够在Ajax中显示隐藏元素,请使用Hidden属性(而不是Visible)。 -使用Visible属性会导致不向浏览器输出这个元素,因此也无法通过Ajax切换Visible属性。 -修正Form的LabelWidth属性不能控制单列表单字段的标签宽度的问题。 -修正HtmlEditor获取不到值的问题。 +按需加载ExtJS的JavaScript文件,大大加快了页面第一次的显示速度。 -原来需要一次性下载800K的JavaScript文件,在网络较慢的环境中,单独的文件下载就需要6s左右,形成严重的水桶效应。 -现在将ExtJS的JavaScript文件拆成如下几个部分:core、foundation、form、grid、menu、tab、tree,页面按需下载其中的一些文件。 -将一个大文件分成几个小文件下载,也充分发挥了浏览器并行下载的特性,为更快的显示页面提供了帮助。 -注意:这仅仅适用于页面第一次加载的情况,第二次及以后的页面加载会充分利用浏览器自身的客户端缓存,而无需再次下载这些已经下载过的JavaScript文件。 -为Button\MenuButton\LinkButton\LinkButtonField增加ValidateMessageBox,用来控制在验证失败时是否出现提示对话框。

62,244

社区成员

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

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

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

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