Repeater怎样在后台获取它里面td里面的值==========================

yangchun1213 2011-07-11 02:59:09
我有个Repeater控件:

<asp:Repeater ID="Rpt1" runat="server" OnItemDataBound="Rpt1_OnItemDataBound">
<HeaderTemplate>
<asp:Button runat="server" ID="btnSelectPkg" OnClick="btnSelectPkg_Click" Style="display: none;" />
<input type="hidden" id="hdPkInfo" runat="server" />
<table id="tabPk" width="100%" border="0" cellspacing="1" cellpadding="2">
<thead>
<tr class="HeaderStyle">
<th scope="col" width="23" />
<th scope="col" align="left" width="240">
Item Type
</th>
<th scope="col" align="left">
Item Description (Package/Accessory/Manual Input)
</th>
<th scope="col" align="right" width="70">
Start Date
</th>
<th scope="col" align="right" width="70">
Expiry Date
</th>
<th scope="col" align="right" width="65">
Package Amt(<%=sCurrency%>)
</th>
<th scope="col" width="50">
Quantity
</th>
<th scope="col" width="30" id="tdUnit" runat="server">
Unit
</th>
<th scope="col" align="right" width="110">
Package Disc Amt    (% / Amt)  
</th>
<th scope="col" align="right" width="70">
Package Net Amt(<%=sCurrency%>)
</th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr class="RowStyle">
<td valign="middle">
<input type="checkbox" id="ckID" runat="server" value='<%# DataBinder.Eval(Container, "DataItem.PurchaseOrderItemID")%>' /><input
type="hidden" id="hdAttach" runat="server" value='<%# DataBinder.Eval(Container, "DataItem.AttachTo")%>' /><input
type="hidden" id="PkID" runat="server" value='<%# DataBinder.Eval(Container, "DataItem.PackageID")%>' /><input
type="hidden" id="hdPeriod" runat="server" value='<%# DataBinder.Eval(Container, "DataItem.ValidPeriod")%>' />
<input type="hidden" id="hdStartTime" runat="server" value='<%# DataBinder.Eval(Container, "DataItem.PackageStartDate")%>' />
</td>
<td nowrap="nowrap">
<select id="dpPkType" runat="server">
<option value="P">Package</option>
<option value="A">Accessory</option>
<option value="M">Manual Input</option>
</select>
<span id="divPg" runat="server">
<asp:TextBox ID="txtPkCode" size="6" MaxLength="5" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.PackageCode")%>'
onchange="ResetPackage(this)" onkeypress="return GetInfoWithEnterPress(this,'Package')" />
<input type="button" id="btnGoPk" runat="server" value="Go" onserverclick="btnGoPk_Click" />
<input type="button" id="btnSelPk" runat="server" value="..." />
</span>
<select id="dpAcy" runat="server" datatextfield="ServiceName" datavaluefield="ServiceID"
style="display: none;" onchange="Accessory_onChange(this)" />
</td>
<td>
<asp:Label ID="lbPkName" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.PackageName")%>' /><asp:TextBox
ID="txtPkName" runat="server" MaxLength="30" size="40" Text='<%# DataBinder.Eval(Container, "DataItem.PackageName")%>' />
</td>
<td align="right">
<asp:TextBox ID="txDtStartDate" runat="server" MaxLength="11" Width="6em" Text='<%# DataBinder.Eval(Container, "DataItem.PackageStartDate")%>'
InitVal='<%# DataBinder.Eval(Container, "DataItem.InitStartDate")%>' onclick="SelectDate(this.id, this.attributes['InitVal'].nodeValue)"
autocomplete="off" onchange="ChangePkgPeriod(this);" />
</td>
<td align="right">
<asp:TextBox ID="txDtEndDate" runat="server" MaxLength="11" Width="6em" Text='<%# DataBinder.Eval(Container, "DataItem.PackageExpireDate")%>'
onclick="SetEndDate(this.id)" autocomplete="off" onchange="ChangePkgEndPeriod(this);" />
</td>
<td align="right">
<asp:TextBox ID="txtPkAmt" size="6" MaxLength="10" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.PackageAmount")%>'
onblur="CheckPkgTotal(this)" onkeypress="return NumberText(event);" class="rt"
autocomplete="off" onfocus="NoFocus();" />
</td>
<td align="center">
<asp:Label ID="lbPkQty" runat="server" Text='<%#



我在后台怎么获取类似:
<th scope="col" align="left" width="240">
Item Type
</th>中的值:Item Type

如果我放一个Lable在th里,怎么在后台给这个label赋值,不能在OnItemDataBound事件里来获取,我想通过自己写一个方法来获取
...全文
496 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2011-07-12
  • 打赏
  • 举报
回复
你选择语言跟th和td什么关系啊?写成了td怎么还能选择呢?既然选择,肯定是DropDownList或者RadioButtonList之类的东西,或者字啊其他地方选择完毕之后,采用Cookie等记住这些选项,

是你自己描述不清楚,不要怪别人不给你正确的解答。
你要搞清楚http是怎么传递数据的。
b87936260 2011-07-12
  • 打赏
  • 举报
回复
Controls.FindControl("id")
有个大概是这样的方法能找到asp控件里面的控件,前提是你你那个label的ID要是动态给的,比如ID="<#Eval('ID')>",这样后台就能根据ID找到他
yangchun1213 2011-07-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 net_lover 的回复:]

很多th和td里的值要动态从数据库拿,很简单啊,只要在ItemTemplate里面加就可以啊,name编号按照数据库的id自动进行编排,都是有规律的
[/Quote]

哎,我都说不清楚了,我现在是做一个多语言的,我要根据页面的选择时中文还是英文,然后去拿数据库,让Repeater的列头显示相应的语言,所以我这个动态去数据库拿的数据每次只有一条数据,就是一个列头
yangchun1213 2011-07-12
  • 打赏
  • 举报
回复
有木有高手啊?高手进来吧
ycproc 2011-07-11
  • 打赏
  • 举报
回复
你放一个在你的操作上面绑定一个ID主键

或则在你的数据前面干脆放一个 ID的列

然后需要的时候后台直接取
孟子E章 2011-07-11
  • 打赏
  • 举报
回复
很多th和td里的值要动态从数据库拿,很简单啊,只要在ItemTemplate里面加就可以啊,name编号按照数据库的id自动进行编排,都是有规律的
yangchun1213 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 net_lover 的回复:]
html代码是不能提交到服务器端的,你可以放置一个隐藏的<input来实现。
[/Quote]
难道我在前台放一些隐藏控件,在后台把数据放入隐藏控件中,然后在前台用js在把隐藏控件的值赋给Repeater中Table的th和td中去?

我很多th和td里的值要动态从数据库拿啊,还有其他方法不?
孟子E章 2011-07-11
  • 打赏
  • 举报
回复
html代码是不能提交到服务器端的,你可以放置一个隐藏的<input来实现。
yangchun1213 2011-07-11
  • 打赏
  • 举报
回复
有木有大侠高手进来啊,江湖救急,懂Repeater的都进来吧……
yangchun1213 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 yangchun1213 的回复:]
我有个Repeater控件:
HTML code

<asp:Repeater ID="Rpt1" runat="server" OnItemDataBound="Rpt1_OnItemDataBound">
<HeaderTemplate>
……
[/Quote]

如果这样的话,我前台有很多th或者td的值要动态拿取,每个都这样去调用一个方法的话,不是会很损耗性能,能不能在后台对前台进行操作?
insus 2011-07-11
  • 打赏
  • 举报
回复
加ID="xxx",还要加run="server"
coxie007 2011-07-11
  • 打赏
  • 举报
回复
在后台写一个方法Yours(object id);
前台直接<%=Yours(<%#Eval(id))%>

62,041

社区成员

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

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

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

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