如何在代码中访问aspx控件?

时间:2013-09-03 12:15:35

标签: c# asp.net

NET。我试图访问SeparatorTemplate内的代码后面的div标签 这是我的aspx代码

<div>
    <asp:DataList ID="DataList1" runat="server">
        <ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
        <HeaderTemplate>
            <table width="900px">
                <tr>
                    <td width="300px">
                        <b>Name</b>
                    </td>
                    <td width="300px">
                        <b>Account No</b>
                    </td>
                    <td width="300px">
                        <b>Company</b>
                    </td>
                </tr>
            </table>
        </HeaderTemplate>
        <ItemTemplate>
            <table width="900px">
                <tr>
                    <td align="left" width="300px">
                        <%# DataBinder.Eval(Container.DataItem, "Name")%>
                    </td>
                    <td align="left" width="300px">
                        <%# DataBinder.Eval(Container.DataItem, "AccountNo")%>
                    </td>
                    <td align="left" width="300px">
                        <%# DataBinder.Eval(Container.DataItem, "Company")%>
                    </td>
                </tr>
            </table>
        </ItemTemplate>
        <HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
        <SeparatorTemplate>
            <div id="divSeprator" runat="server">//This div tag i want to access in the code behind  
            <br />
            </div>

        </SeparatorTemplate>
    </asp:DataList>
</div>

我已尝试访问this.ControlsDataList1.Controls,但这两个都不包含此div我知道它在SepratorTemplate但我不知道如何访问控件从该模板,因为没有什么可以找到控件。

4 个答案:

答案 0 :(得分:3)

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
    // Find the div control as htmlgenericcontrol type, if found apply style
    System.Web.UI.HtmlControls.HtmlGenericControl div =  (System.Web.UI.HtmlControls.HtmlGenericControl)e.Item.FindControl("DivContent");

    if(div != null)
        div.Style.Add("border-color", "Red");

}

答案 1 :(得分:0)

您需要从datalist行中找到它,如下所示。

HtmlGenericControl div = (HtmlGenericControl)yourDataList.Items[0].FindControl("dvSeparator");

您可以在.Items[]中传递要查找要处理的div的数据列表项(行)的索引。

如果你想处理所有datalist项目中的div,那么你可以在@Upvote MarkAnswer在他的回答中建议的数据列表的项目数据绑定事件中进行。

答案 2 :(得分:0)

HtmlGenericControl divSeprator = (HtmlGenericControl)DataList1.Items[0].FindControl("divSeprator");

0 是您的商品索引。

或者只是绑定 DataList1_ItemDataBoud 事件并使用:

if(e.Item.ItemType == ListItemType.Separator)
   HtmlGenericControl divSeprator = (HtmlGenericControl)e.Item.FindControl("divSeprator");

答案 3 :(得分:-1)

你需要制作标签runat =“server”并在

时给出它
<div id="div" runat="server">

然后您可以使用

访问它
HtmlGenericControl div = HtmlGenericControl("div")