导航
  • 主页
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

找到datalist里面的控件

codelabs 2009-09-15 08:02:25
问题一:
前台:
 <asp:DataList ID="dl" runat="server" >
<ItemTemplate>
<asp:HyperLink ID="hlreply" NavigateUrl='<%#Eval("id","FocusCard.aspx?id={0}") %>' Text="回复" runat="server"></asp:HyperLink>
</ItemTemplate>
</asp:DataList>


我想在后台中根据登入用户的权限去控制显示这个 hlreply 超链接。
比如,如果登入的用户是管理员我就显示 “回复”。
如果是普通用户就隐藏“ 回复”功能。

本来用GV的话设置属性就可以了,没在DL中这样用过,我设想是 在后台中 hlreply.visiable="true/false"或者enable="true/false" 但是找不到 hlreply这个控件。
如果我想实现上面的功能该这么做?

问题二:继续上次没人解决的问题。
一个页面有一个calendar id="birthday"控件。
后台:
protected void birthday_SelectionChanged(object sender, EventArgs e)
{
txtbirthday.Text = birthday.SelectedDate.ToShortDateString();
birthday.Visible = false;
}

可是我点击了某时间后, txtbirthday.Text 没有得到值,而且在页面的左下角显示“页面有错误”详细内容是说:“行28,字符29,对象不支持该属性或方法” 也不知道说前台还是后台 都没报错找了好久没看到。
还有该页面的所有控件的selectChange事件都无效了。怎么回事?

如果原意的给个远程控制也行。留下QQ谢谢了。
...全文
188 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Moqin89 2011-12-08
顶一楼!
for (int i = 0; i < DLFens.Items.Count;i++ )
{
((HyperLink)DLFens.Items[i].FindControl("fens")).Text = "0";
}
回复
codelabs 2009-09-16
还有一个特点就是 我没运行页面的时候 按照我的要求居中显示,但运行后就是居左显示了
回复
codelabs 2009-09-16
前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Register.aspx.cs" Inherits="admin_Register" %>

<!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">
<div id="contianer" style="text-align: center; height: 5px">
<div style="color: Red; background-color: Black">
<strong><span>用户注册</span></strong></div>
<table>
<tr>
<th>
账        号:</th>
<td>
<asp:TextBox ID="txtaccount" runat="server"></asp:TextBox></td>
</tr>
<tr>
<th>
密        码:</th>
<td>
<asp:TextBox ID="txtpassword" runat="server" BorderStyle="Inset"></asp:TextBox></td>
</tr>
<tr>
<th>
性        别:</th>
<td>
<asp:RadioButton ID="male" runat="server" Text="男" GroupName="sex" />
       
<asp:RadioButton ID="female" runat="server" Text="女" GroupName="sex" /></td>
</tr>
<tr>
<td>
</td>
<td>
<asp:Image runat="server" ID="img" /></td>
</tr>
<tr>
<th>
选择头像:</th>
<td>
<asp:DropDownList AutoPostBack="true" ID="ddlimg" runat="server">
</asp:DropDownList></td>
</tr>
<tr>
<th>
家庭住址:</th>
<td>
<asp:TextBox ID="txtaddress" runat="server"></asp:TextBox></td>
</tr>
<tr>
<th>
出生年月:</th>
<td>
<asp:TextBox ID="txtbirthday" runat="server" ReadOnly="True" AutoPostBack="false"></asp:TextBox></td>
<td>
<asp:Button ID="btnage" runat="server" Text="..." OnClick="btnage_Click" BackColor="#FFFFC0" /></td>
<td>
<asp:Calendar ID="birthday" SelectionMode="Day" runat="server" Style="position: absolute;
left: 628px; top: 312px;" BackColor="White" BorderColor="#3366CC" Font-Names="Verdana"
Font-Size="8pt" ForeColor="#003399" Height="200px" Visible="False" Width="220px"
BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" OnSelectionChanged="birthday_SelectionChanged">
<SelectedDayStyle BackColor="#009999" ForeColor="#CCFF99" Font-Bold="True" />
<TodayDayStyle BackColor="#99CCCC" ForeColor="White" />
<OtherMonthDayStyle ForeColor="#999999" />
<NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" />
<DayHeaderStyle ForeColor="#336666" Height="1px" BackColor="#99CCCC" />
<TitleStyle BackColor="#003399" Font-Bold="True" Font-Size="10pt" ForeColor="#CCCCFF"
Height="25px" BorderColor="#3366CC" BorderWidth="1px" />
<SelectorStyle BackColor="#99CCCC" ForeColor="#336666" />
<WeekendDayStyle BackColor="#CCCCFF" />
</asp:Calendar>
</td>
</tr>
<tr>
<th>
验证码    :</th>
<td>
<asp:TextBox ID="txtcheck" runat="server" BorderStyle="Solid"></asp:TextBox></td>
<td>
<asp:Image runat="server" ID="imgcheckCode" ImageUrl="~/admin/board/checkCode.aspx" />
</td>
</tr>
<tr>
<td>
<asp:Button ID="submit" runat="server" Text="提交" OnClick="submit_Click" /></td>
<td>
<asp:Button ID="reset" runat="server" Text="重置" /></td>
</tr>
</table>
</div>
<div style="text-align: center">
<h3>
点击<a href="BoardIndex.aspx">这里</a>返回首页</h3>
</div>
</form>
</body>
</html>

我试过了如果页面中只有 calendar id='birthday'和textbox id="txtbirthday" 的话就可以实现。就是说问题出在其他控件上,可是我一个一个试了还是没找出哪个控件加载问题。郁闷死了
回复
lw402365015 2009-09-15
查找父容器试下
回复
wuyq11 2009-09-15
(HyperLink)datalist1.items[i].findcontrol("hlreply").Text;
也可调用后台函数实现
还可在ItemDataBound里
HyperLink hl = (HyperLink)e.Item.FindControl("hlreply");
hl.NavigateUrl = "";
选择日期脚本文件,使用 My97DatePicker很简单
<asp:TextBox id="txtStartTime" onfocus="new WdatePicker(this,null,false,'whyGreen')" runat="server" Width="120px"></asp:TextBox>
回复
hzj170 2009-09-15
问题二在我的机子上运行没有问题。
楼主还是把所有代码贴出来方便大家讨论。。
回复
hzj170 2009-09-15
[Quote=引用 1 楼 zhouzerong2006 的回复:]
问题一

获取datalist的Itemtemplate模板中的控件
  HyperLink link=(HyperLink )this.dl.Items[0].FindControl("hlreply");
[/Quote]

up
回复
mb_1985 2009-09-15
1.使用三元运算符给visiable赋值
2.明显js错误,开启IE脚本调试功能进行调试
回复
cuike519 2009-09-15
==>:“行28,字符29,对象不支持该属性或方法”

JS的错误。

selectChange没反映是因为上面的错误导致的。
回复
zhouzerong2006 2009-09-15
问题一

获取datalist的Itemtemplate模板中的控件
HyperLink link=(HyperLink )this.dl.Items[0].FindControl("hlreply");
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告