1
<asp:DetailsView...
    <asp:TemplateField HeaderText="My CheckBox" SortExpression="DataID" >
         <InsertItemTemplate>
                <asp:CheckBox ID="T01cbx" runat="server" Visible ="false" Checked='<%# Bind("DataID") %>' AutoPostBack="True" " />
         </InsertItemTemplate>
    </asp:TemplateField>

上記のTemplateFieldにIDまたは名前を付けて、コードビハインドからアクセスしたいと思います。IDまたは名前を指定してTemplateFieldを見つける方法はありますか?これはDetailView内にあります。

4

2 に答える 2

3

LINQを使用して、次TemplateFieldのように取得できHeaderTextます。

TemplateField cbField = DetailsView1.Fields.OfType<TemplateField>()
                       .Where(f => f.HeaderText == "My CheckBox")
                       .FirstOrDefault();
于 2012-04-18T23:03:46.263 に答える
1

私は過去にこれを試みましたが、すべての列をループし、SortExpressionによって変更したい関数を見つけるよりも良い方法を見つけることはできませんでした。

これは、SortExpressionによって列を非表示/表示するために使用した関数です。

public void ShowHideGridColumnBySortExpression(string sortExpression, bool show)
{
    for (int i = 0; i < gvProducts.Columns.Count; i++)
    {
        if (gvProducts.Columns[i].SortExpression != null && gvProducts.Columns[i].SortExpression == sortExpression)
        {
            gvProducts.Columns[i].Visible = show;
            break;
        }
    }
}
于 2012-04-18T22:54:55.700 に答える