如何使用C#在转发器控件内找到标签值?
下面显示了aspx和C#代码,但我没有得到输出。
aspx内容
<table>
<tr>
<th>Batch</th>
<th>Action</th>
</tr>
<asp:Repeater runat="server" ID="rptrBatch">
<ItemTemplate>
<tr>
<asp:Label ID="lbBatchID" runat="server"><%#Eval("id")%></asp:Label>
<td><asp:Label ID="lbBatchName" runat="server"><%#Eval("Name")%></asp:Label></td>
<td><asp:CheckBox id="cbBatch" runat="server"/></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<table>
<tr>
<th>Level</th>
<th>Action</th>
</tr>
<asp:Repeater runat="server" ID="rptrLevel">
<ItemTemplate>
<tr>
<asp:Label ID="lbLevelID" runat="server"><%#Eval("id")%></asp:Label>
<td><asp:Label ID="lbLevelName" runat="server"><%#Eval("Name")%></asp:Label></td>
<td><asp:CheckBox id="cbLevel" runat="server" CssClass="cbLevel"/></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<asp:LinkButton runat="server" ID="lnkSave" OnClick="lnkSave_Click" >Save</asp:LinkButton>
C#代码
protected void lnkSave_Click(object sender, EventArgs e)
{
GetCheckBoxValue(rptrBatch, "cbBatch", "lbBatchID", "lbBatchName");
GetCheckBoxValue(rptrLevel, "cbLevel", "lbLevelID", "lbLevelName");
}
private void GetCheckBoxValue(Repeater RptrName, string CheckboxName, string labelID, string labelName)
{
Label CellId,CellValue;
string cellId, cellValue;
CheckBox chk;
foreach (RepeaterItem ri in RptrName.Items)
{
chk = (CheckBox)ri.FindControl(CheckboxName);
if (chk.Checked)
{
CellId = (Label)ri.FindControl(labelID);
cellId = CellId.Text.ToString();
CellValue = (Label)ri.FindControl(labelName);
cellValue = CellValue.Text.ToString();
}
}
}
谢谢。
答案 0 :(得分:1)
尝试在aspx页面中设置Labels
Text
属性。
<asp:Label ID="lbBatchID" runat="server" Text='<%#Eval("id")%>'></asp:Label>
<td><asp:Label ID="lbBatchName" runat="server" Text='<%#Eval("Name")%>'></asp:Label></td>