关于Web中自动插入ImageButton按钮控件的问题

objectzhu 2003-09-11 01:54:46
在程序中自动插入了ImageButton,但页面中却显示不出来
...全文
35 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
momoguagua 2003-09-12
  • 打赏
  • 举报
回复
不知道为什么,我是在页面上直接定义的table控件就可以用
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
同志们,我写出来了:
datatable = new Table();
datatable.Font.Name = "宋体";
datatable.Font.Size = FontUnit.XSmall;
datatable.Width = 619;
datatable.BackColor = ColorTranslator.FromHtml("#f0f0f0");
datatable.BorderStyle = BorderStyle.Solid;
datatable.BorderWidth = 1;
datatable.GridLines = GridLines.Both;
datatable.CellPadding = 0;
datatable.CellSpacing = 0;
for( int i = 0; i < ds.Tables[0].Rows.Count;i++)
{
datatable.Rows.Add(InsertUserdata(i));
}
ds.Clear();
datahtml.Controls.Add(datatable);

private TableRow InsertUserdata(int i)
{
TableRow tablerow= new TableRow();
TableCell tablecall1= new TableCell();
TableCell tablecall2= new TableCell();
TableCell tablecall3= new TableCell();
TableCell tablecall4= new TableCell();
TableCell tablecall5= new TableCell();
TableCell tablecall6= new TableCell();
string imagebuttoninnerhtml = "";
string innerHtml = "";
string questurl = "";
string tableType = ds.Tables[0].Rows[i]["tabletype"].ToString();
string userid = ds.Tables[0].Rows[i]["drnc"].ToString();
string username = ds.Tables[0].Rows[i]["xinm"].ToString();
string sex = ds.Tables[0].Rows[i]["xinb"].ToString();
string knowledge = ds.Tables[0].Rows[i]["whcd"].ToString();
if(tableType == "mjf")
questurl = "persondataadmin.aspx?userid="+userid;
else if(tableType == "xz")
questurl = "administerdataadmin.aspx?userid="+userid;
switch(i)
{
case 0:
ImageButton0 = new ImageButton();
ImageButton0.ID = "ImageButton0";
ImageButton0.AlternateText = userid;
ImageButton0.ToolTip = tableType;
ImageButton0.ImageUrl = "../image/m_delete.gif";
ImageButton0.Click +=new ImageClickEventHandler(ImageButton_Click);
imageButton = ImageButton0;
userdatalink = new HyperLink();
userdatalink.NavigateUrl = questurl;
userdatalink.ImageUrl = "../image/isbest.gif";
break;
case 1:
ImageButton1 = new ImageButton();
ImageButton1.ID = "ImageButton1";
ImageButton1.AlternateText = userid;
ImageButton1.ToolTip = tableType;
ImageButton1.ImageUrl = "../image/m_delete.gif";
ImageButton1.Click +=new ImageClickEventHandler(ImageButton_Click);
imageButton = ImageButton1;
userdatalink = new HyperLink();
userdatalink.NavigateUrl = questurl;
break;
case 2:
ImageButton2 = new ImageButton();
ImageButton2.ID = "ImageButton2";
ImageButton2.AlternateText = userid;
ImageButton2.ToolTip = tableType;
ImageButton2.ImageUrl = "../image/m_delete.gif";
ImageButton2.Click +=new ImageClickEventHandler(ImageButton_Click);
imageButton = ImageButton2;
userdatalink = new HyperLink();
userdatalink.NavigateUrl = questurl;
break;
}
tablecall1.Text = userid;
tablecall1.Width = 115;
tablecall1.Height = 12;
tablecall2.Text = username;
tablecall2.Width = 105;
tablecall2.Height = 12;
tablecall3.Text = sex;
tablecall3.Width = 80;
tablecall3.Height = 12;
tablecall4.Text = knowledge;
tablecall4.Width = 130;
tablecall4.Height = 12;
tablecall5.Controls.Add(imageButton);
tablecall5.Width = 110;
tablecall5.Height = 12;
tablecall6.Controls.Add(userdatalink);
tablecall6.Width = 130;
tablecall6.Height = 12;
tablerow.VerticalAlign = VerticalAlign.Middle;
tablerow.HorizontalAlign = HorizontalAlign.Center;
tablerow.Cells.Add( tablecall1);
tablerow.Cells.Add( tablecall2);
tablerow.Cells.Add( tablecall3);
tablerow.Cells.Add( tablecall4);
tablerow.Cells.Add( tablecall5);
tablerow.Cells.Add( tablecall6);
return tablerow;
}

原因很简单,用html的table不行,这次我用的是C#的Table控件

谢谢大家的参于,现在开始散分:
cuike519 2003-09-11
  • 打赏
  • 举报
回复
看了搂主动态添加控件的方法我简直是五体投地!
佩服到了极点!
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
那个id="td1"你改双引号看一下
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
我这里用没事。。。。。。。你把工程关了,在开一次看看,可能是前台的控件没找到后台的定义
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
我记得在前一个多礼拜有人发了这么一个话题,不知道能不能找到!
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
谢谢大哥,我试了一下,弹出一个错误:未将对像引用到对像的实例
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
改这样:
"<td width='110'align='middle'height='12' runat="server" id='td1'>"+imagebuttoninnerhtml+"</td>"
在cs文件里面类的下面加:protected System.Web.UI.HtmlControls.HtmlTableCell td1;
td1.Controls.Add(ImageButton0)
你看看可以不可以
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
上面的代码看一下,table是自动生成的
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
LEFT是这个控件横坐标,TOP是纵坐标,原点在屏幕的左上角,Z-INDEX是这个控件的三维的坐标,标记这个控件是否在其他的控件的上面或者下面(对于DropDownList好像无效,所有控件都在DropDownList的下面)
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
你可以给你的表格的<td>或者<tr>元素设定为runat="server" id="td1"
然后对这个<td>或者<tr>元素进行操作,td1.Controls.Add(Control)你这个控键就被添加在这个表格的<td>的后面了
或者
如果你的窗口布局是MS_POSITIONING="GridLayout"这种类型的,看你的<body>属性
你可以设定这个button的style="Z-INDEX: 101; LEFT: 232px; POSITION: absolute; TOP: 144px"属性来定位这个Button的位置
不过这个方法我没用过,<td>的那个方法我用过可以实现,不过就是不太灵活
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
momoguagua(呱呱)兄,出来了,改了一个字符:queryform.Controls.Add(ImageButton0);
queryform为form,只是位置不正确,再帮忙想想看!
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
不要的话,控件在哪个位置显示是否能准确定位?
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
这个我也不太清楚,没有用过
不过这句
imagebuttoninnerhtml = "<asp:ImageButton id='ImageButton0' runat='server' ImageUrl='../image/m_delete.gif' AlternateText='"+userid+"' ToolTip='"+tableType+"'></asp:ImageButton>";
就不要要啦
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
不是用的DataGrid,是用的表格
我照楼上说的做了,又出现了一点问题:
code:
ImageButton0 = new ImageButton();
ImageButton0.AlternateText = userid;
ImageButton0.ToolTip = tableType;
ImageButton0.Click +=new ImageClickEventHandler(ImageButton_Click);
Page.Controls.Add(ImageButton0);
imagebuttoninnerhtml = "<asp:ImageButton id='ImageButton0' runat='server' ImageUrl='../image/m_delete.gif' AlternateText='"+userid+"' ToolTip='"+tableType+"'></asp:ImageButton>";
innerHtml +="<table><tr>"+
"<td width='115'align='middle'height='12'><font size='2'>"+userid+" </font></td>"+
"<td width='105'align='middle'height='12'><font size='2'>"+username+" </font></td>"+
"<td width='80'align='middle'height='12'><font size='2'>"+sex+" </font></td>"+
"<td width='130'align='middle'height='12'><font size='2'>"+knowledge+" </font></td>"+
"<td width='110'align='middle'height='12'>"+imagebuttoninnerhtml+"</td>"+
"<td width='79'align='middle'height='12'><a href='"+questurl+"'target='_self'><img src='../image/isbest.gif'align='middle'border='0'></a></td>"+
"</tr></table>";
datahtml.InnerHtml += userdatahtm;

出现的错误:
类型“ImageButton”的控件“_ctl1”必须放在具有 runat=server 的窗体标记内。

我查来查去,我的from 、div 都是runat="server"
不知道是怎么回事,老大帮忙查一下代码
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
你要是用DataGrid的话,他有专门的按钮列,有个命令"Delete"你可以在
private void DG_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)里
对这个Delete命令所对应的按钮进行你的操作
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
就你CSDN后面的“管理”按钮一样,我要取出该记录的ID号,然后在数据库中删除
objectzhu 2003-09-11
  • 打赏
  • 举报
回复
我试一试,等会结帐!谢谢大家!
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
你干吗不建22个按钮,用的时候Visiable=true,不用的时候Visiable=False
momoguagua 2003-09-11
  • 打赏
  • 举报
回复
每个按钮都加一个this.Button1.Click += new System.EventHandler(this.Button1_Click);
private void Button1_Click(object sender, System.EventArgs e)
{
... ...
}
加载更多回复(8)

62,025

社区成员

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

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

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

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