C# 动态更改GridView中的边界字段

C# 动态更改GridView中的边界字段,c#,asp.net,C#,Asp.net,我在UpdatePanel中有一个GridView。在某些情况下,我必须在此GridView中显示不同的列,因此我需要更改aspx中指定的BoundFields 如何更改BoundFields以使GridView为不同的查询和不同的字段填充 ASPX <cc1:GridView ID="grdImoveis" CssClass="StyleGrid" Width="100%" runat="server" ShowHeader="false" AutoGenerat

我在
UpdatePanel
中有一个
GridView
。在某些情况下,我必须在此
GridView
中显示不同的列,因此我需要更改
aspx
中指定的
BoundFields

如何更改
BoundFields
以使
GridView
为不同的查询和不同的字段填充

ASPX

<cc1:GridView ID="grdImoveis" CssClass="StyleGrid" Width="100%" runat="server" ShowHeader="false"
            AutoGenerateColumns="False" DataSourceID="dsGrid" BorderWidth="0px" GridLines="None"
            AllowPaging="True" EnableModelValidation="True" >
            <AlternatingRowStyle BackColor="White" CssClass="EstiloDalinhaAlternativaGrid" HorizontalAlign="Center" />
            <RowStyle CssClass="EstiloDalinhaGrid" HorizontalAlign="Center" />
            <Columns>
                <asp:BoundField HeaderText="Nome" DataField="NomeCompleto" />
                <asp:BoundField HeaderText="Cargo" DataField="DescricaoCargo1" />
                <asp:BoundField HeaderText="Data Cadastro" DataField="DataHora" />
                <asp:TemplateField ControlStyle-CssClass="acoes_lista_imovel" HeaderText="Curso">
                    <ItemTemplate>
                        <div class="acoes_lista_imovel">
                            <%# montaIcones(Eval("Usuario_Id").ToString())%>
                        </div>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </cc1:GridView>

您可以放置GridView并启用“AutoGenerateColumns=True”,并为您喜欢的每种情况填充grid view。

如果我正确理解您的查询,您希望更改列。一个简单的解决方案是
不要在aspx页面中指定字段,只需在网格视图declaretin中设置AutoGenrateColumns=True
你的网格应该是这样的

<asp:GridView ID="gv" runat="server" AutoGenrateColumns="True" />

// Now in your code behind just specify its DataSource property it will fill up with your desired columns.
// Your query should contain only those columns which you want to show 

//现在,在代码隐藏中,只需指定它的DataSource属性,它将用所需的列填充。
//查询应仅包含要显示的列

您可以使用此代码以编程方式创建ImageField:

 ImageField img = new ImageField();
        img.HeaderText = "Pictuer";
        img.DataImageUrlField ="Pic";
        img.DataImageUrlFormatString = "images\\{0}";
        GridView1.AutoGenerateColumns = false;
        GridView1.Columns.Add(img);

但这将生成查询中存在的所有列您可以通过编程方式创建有界字段(使用BoundField的类)请参见此处:但这将生成查询中存在的所有列,并且在特定列中我放置了一个imageyes,否则您必须使用网格的RowDataBound事件来更改它。你想改变什么?列标题?或者,对于示例,
SELECT Id,Name FROM User
,如果我用
AutoGenerateColumn=true
填充
GridView
,则只会给出Id和Name列。我需要在此列的所有行中放置另一列,其中包含特定映像。从何处获取映像路径?映像在我的VisualStudio解决方案中具有引用,并且位于我的C:和服务器中
 ImageField img = new ImageField();
        img.HeaderText = "Pictuer";
        img.DataImageUrlField ="Pic";
        img.DataImageUrlFormatString = "images\\{0}";
        GridView1.AutoGenerateColumns = false;
        GridView1.Columns.Add(img);