如下代码中,我想通过单击"lbtn_Show",以获得Repeater控件中的"literal_Start_Tag"和"literal_End_Tag"控件, 该怎么实现。 我试过用 (Literal)Repeater1.FindControl("literal_Start_Tag"); 但是得到的是null值<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %><!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">
<asp:ScriptManager ID="scriptManager1" runat="server">
</asp:ScriptManager>
<asp:SqlDataSource ID="sds_Carton" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT SSCC18_Label, Order_Id, Shipment_Id, Buyer_Code, Carton_Number FROM Carton WHERE Job_Sheet_Id = 5166 ORDER BY Carton_Number">
</asp:SqlDataSource>
<asp:UpdatePanel ID="up_Main" runat="server" UpdateMode="conditional">
<ContentTemplate>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="sds_Carton">
<HeaderTemplate>
<table cellpadding="3" cellspacing="1" border="0" style="background-color: Gray;
font-family: Verdana; font-size: 11pt;">
<tr style="background-color: #EFEFEF; font-weight: bold;">
<td style="width: 10px;">
</td>
<td>
SSCC18_Label</td>
<td>
Order_Id</td>
<td>
Shipment_Id</td>
<td>
Buyer_Code</td>
<td>
Carton_Number</td>
</tr>
</HeaderTemplate>
<AlternatingItemTemplate>
<tr style="background-color: White;" onmouseover="c = this.style.backgroundColor; this.style.backgroundColor = '#00EFEF'; this.style.cursor = 'hand';"
onmouseout="this.style.backgroundColor = c;">
<td>
<asp:LinkButton ID="lbtn_Show" runat="server" Text="+" Font-Underline="false" ForeColor="graytext"
OnClick="lbtn_Show_Click"></asp:LinkButton></td>
<td>
<%#Eval("SSCC18_Label") %>
</td>
<td>
<%#Eval("Order_Id") %>
</td>
<td>
<%#Eval("Shipment_Id") %>
</td>
<td>
<%#Eval("Buyer_Code") %>
</td>
<td>
<%#Eval("Carton_Number") %>
</td>
</tr>
<asp:Literal ID="literal_Start_Tag" runat="server"></asp:Literal>
<asp:Panel ID="panel_Carton_Content" runat="server" Visible="false">
</asp:Panel>
<asp:Literal ID="literal_End_Tag" runat="server"></asp:Literal>
</AlternatingItemTemplate>
<ItemTemplate>
<tr style="background-color: White;" onmouseover="c = this.style.backgroundColor; this.style.backgroundColor = '#00EFEF'; this.style.cursor = 'hand';"
onmouseout="this.style.backgroundColor = c;">
<td>
<asp:LinkButton ID="lbtn_Show" runat="server" Text="+" Font-Underline="false" ForeColor="graytext"
OnClick="lbtn_Show_Click"></asp:LinkButton></td>
<td>
<%#Eval("SSCC18_Label") %>
</td>
<td>
<%#Eval("Order_Id") %>
</td>
<td>
<%#Eval("Shipment_Id") %>
</td>
<td>
<%#Eval("Buyer_Code") %>
</td>
<td>
<%#Eval("Carton_Number") %>
</td>
</tr>
<tr style="background-color: White;">
<td>
</td>
<td colspan="5">
<asp:Panel ID="panel_Carton_Content" runat="server" Visible="false">
</asp:Panel>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table></FooterTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="scriptManager1" runat="server">
</asp:ScriptManager>
<asp:SqlDataSource ID="sds_Carton" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT SSCC18_Label, Order_Id, Shipment_Id, Buyer_Code, Carton_Number FROM Carton WHERE Job_Sheet_Id = 5166 ORDER BY Carton_Number">
</asp:SqlDataSource>
<asp:UpdatePanel ID="up_Main" runat="server" UpdateMode="conditional">
<ContentTemplate>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="sds_Carton">
<HeaderTemplate>
<table cellpadding="3" cellspacing="1" border="0" style="background-color: Gray;
font-family: Verdana; font-size: 11pt;">
<tr style="background-color: #EFEFEF; font-weight: bold;">
<td style="width: 10px;">
</td>
<td>
SSCC18_Label</td>
<td>
Order_Id</td>
<td>
Shipment_Id</td>
<td>
Buyer_Code</td>
<td>
Carton_Number</td>
</tr>
</HeaderTemplate>
<AlternatingItemTemplate>
<tr style="background-color: White;" onmouseover="c = this.style.backgroundColor; this.style.backgroundColor = '#00EFEF'; this.style.cursor = 'hand';"
onmouseout="this.style.backgroundColor = c;">
<td>
<asp:LinkButton ID="lbtn_Show" runat="server" Text="+" Font-Underline="false" ForeColor="graytext"
OnClick="lbtn_Show_Click"></asp:LinkButton></td>
<td>
<%#Eval("SSCC18_Label") %>
</td>
<td>
<%#Eval("Order_Id") %>
</td>
<td>
<%#Eval("Shipment_Id") %>
</td>
<td>
<%#Eval("Buyer_Code") %>
</td>
<td>
<%#Eval("Carton_Number") %>
</td>
</tr>
<asp:Literal ID="literal_Start_Tag" runat="server"></asp:Literal>
<asp:Panel ID="panel_Carton_Content" runat="server" Visible="false">
</asp:Panel>
<asp:Literal ID="literal_End_Tag" runat="server"></asp:Literal>
</AlternatingItemTemplate>
<ItemTemplate>
<tr style="background-color: White;" onmouseover="c = this.style.backgroundColor; this.style.backgroundColor = '#00EFEF'; this.style.cursor = 'hand';"
onmouseout="this.style.backgroundColor = c;">
<td>
<asp:LinkButton ID="lbtn_Show" runat="server" Text="+" Font-Underline="false" ForeColor="graytext"
OnClick="lbtn_Show_Click"></asp:LinkButton></td>
<td>
<%#Eval("SSCC18_Label") %>
</td>
<td>
<%#Eval("Order_Id") %>
</td>
<td>
<%#Eval("Shipment_Id") %>
</td>
<td>
<%#Eval("Buyer_Code") %>
</td>
<td>
<%#Eval("Carton_Number") %>
</td>
</tr>
<tr style="background-color: White;">
<td>
</td>
<td colspan="5">
<asp:Panel ID="panel_Carton_Content" runat="server" Visible="false">
</asp:Panel>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table></FooterTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
交替行模版
我看了你只有在交替行模版中加入了literal_Start_Tag,literal_End_Tag控件也就是只有在交替行中才能找到literal_Start_Tag和literal_End_Tag控件
估计可以吧。
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Show")
{
LinkButton lbtn = (LinkButton)e.Item.FindControl("lbtn_Show");
Literal start_Tag = (Literal)e.Item.FindControl("literal_Start_Tag");
Literal end_Tag = (Literal)e.Item.FindControl("literal_End_Tag");
SqlDataSource sds_Carton_Content = (SqlDataSource)e.Item.FindControl("sds_Carton_Content");
GridView gv_Carton_Content = (GridView)e.Item.FindControl("gv_Carton_Content");
Label lbl_SSCC18_Label = (Label)e.Item.FindControl("lbl_SSCC18_Label");
if (lbtn.Text == "+")
{
lbtn.Text = "-";
start_Tag.Text = @"<tr style='background-color: #FEEEEE; '>
<td>
</td>
<td colspan='5'>";
end_Tag.Text = @" </td>
</tr>";
sds_Carton_Content.SelectParameters["SSCC18_Label"].DefaultValue = lbl_SSCC18_Label.Text.Trim();
gv_Carton_Content.DataBind();
gv_Carton_Content.Visible = true;
}
else
{
lbtn.Text = "+";
start_Tag.Text = "";
end_Tag.Text = "";
sds_Carton_Content.SelectParameters["SSCC18_Label"].DefaultValue = "";
gv_Carton_Content.Visible = false;
}
}
}