Как найти индекс столбца по имени столбца базы данных в представлении сетки в C#
привет,
Я хочу найти индекс столбца по имени столбца базы данных bind может ли кто-нибудь помочь мне, как достичь этой функциональности
<asp:TemplateField HeaderText="Ref Doc#"> <ItemTemplate> <%# Eval("poNo")%> </ItemTemplate> <ItemStyle CssClass="textAlignCenter noWrap" /> <HeaderStyle CssClass="textAlignCenter noWrap" /> </asp:TemplateField> <asp:TemplateField HeaderText="Ref Date"> <ItemTemplate> <%# Eval("poDate", "{0:dd-MMM-yyyy}")%> </ItemTemplate> <FooterTemplate> <asp:Label ID="lblSum" runat="server" Text="Total Amount:" Font-Bold="true"></asp:Label> </FooterTemplate> <ItemStyle CssClass="textAlignCenter noWrap" /> <HeaderStyle CssClass="textAlignCenter noWrap" /> <FooterStyle CssClass="textAlignLeft" /> </asp:TemplateField>
protected void grdOutstandingInvoice_RowDataBound(object sender, GridViewRowEventArgs e) { }
Я хочу найти индекс столбца по Eval ("poNo"), как мы можем этого достичь. пожалуйста, помогите мне.
заранее спасибо
Что я уже пробовал:
Я очень старался закодировать это
grdOutstandingInvoice.Columns[7].Visible = false;
но в соответствии с требованиями они добавили еще несколько столбцов,
тогда я попробовал это
private int GetColumnIndexByName(GridView grid, string name) { foreach (DataControlField col in grid.Columns) { if (col.HeaderText.ToLower().Trim() == name.ToLower().Trim()) { return grid.Columns.IndexOf(col); } } return -1; }
protected void grdOutstandingInvoice_RowDataBound(object sender, GridViewRowEventArgs e) { var index = GetColumnIndexByName(grid,name); }
Но раньше название заголовка было Reference Doc, теперь они изменили его на Ref Doc# вот почему я не хочу рисковать в будущем, я хочу найти индекс столбца по полю столбца моей базы данных, которое никогда не изменится