пользовательские * произвольные * определения TemplateField - PullRequest
1 голос
/ 16 марта 2010

Я создаю GridView на лету, и я хотел бы заранее определить TemplateFields, которые будут включены по требованию. Итак, я хотел бы иметь декларативный файл, который определяет, как различные шаблоны выглядят для определенного столбца. Как:

<asp:TemplateField>
        <HeaderTemplate>
            this is a text column
        </HeaderTemplate>
        <ItemTemplate>
            data goes here
        </ItemTemplate>
        <EditItemTemplate>
            <asp:TextBox Text="databindhere" />
        </EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
        <HeaderTemplate>
            this is a bool column
        </HeaderTemplate>
        <ItemTemplate>
            if(true) "yes" else "no"
        </ItemTemplate>
        <EditItemTemplate>
            <asp:CheckBox Checked="databindme" />
        </EditItemTemplate>
</asp:TemplateField>

Итак, если мой запрос содержал текст и два поля bool, я мог бы при необходимости вставить соответствующие TemplateFields в свойство Columns. (Я надеюсь, что здесь есть смысл)

Итак, как бы я занялся созданием декларативных файлов для приведенных выше определений? И затем, как бы я мог ссылаться на эти определения программно?

* +1007 *

Хорошо, лучше всего было бы создать подкласс System.Web.UI.WebControls.TemplateField, но когда я это делаю, я не могу использовать объект с директивой <% @ Register%>. Если бы я мог, я бы создал несколько UserControls с новой производной, а затем, при необходимости, LoadControl () и Add () их в столбцы моей сетки.

Есть идеи?

...