2012-06-20 3 views
0

Я пытаюсь загрузить мое gridview (которое я новичок), и я немного потерян. То, что я хочу сделать, - создать заголовок столбца вручную под названием «Описание» и получить все остальные заголовки столбцов из набора данных sql моей таблицы DocumentTypes (dataset1).загрузить GridView из sql source

Столбец «Описание» должен получить весь контент из таблицы «Литература» (набор данных2). Все остальные столбцы должны получить весь контент (если есть) из таблицы «Документы» (dataset3)

Вот где я застрял. Это то, что я делаю для создания вручную моего первого заголовка столбца. Я хочу, чтобы в этой колонке была вся информация из набора данных2.

BoundField m_bfBoundField = new BoundField(); 
m_bfBoundField.HeaderText = "Description"; 
m_bfBoundField.DataField = "Name"; 
gridView.Columns.Add(m_bfBoundField); 

Тогда я сделать

gridView.DataSource = dataset2; 
gridView.DataBind(); 

Я попробовал то же самое для получения моих заголовков от DataSource1, но не ставя .DataField сейчас (мне нужно для моих отношений?)

Фактически, это получает весь столбец «Имя» от источника данных2 и загружает его в столбец «Описание», но также отображает столбец «Имя» в моей сетке с той же информацией: (

Что случилось и как я могу это сделать? Это ясно?

Я хотел

------------------------------------------------------------------------------------------------------- 
| Description (can be called as I want) | Manuals (data from dataset1) | Catalog (data from dataset1) | 
------------------------------------------------------------------------------------------------------- 
| DescripionA (data from dataset2)  | Yes (data from dataset3)  | No (data from dataset3)  | 
| DescripionB (data from dataset2)  | No (data from dataset3)  | Yes(data from dataset3)  | 
------------------------------------------------------------------------------------------------------- 

Спасибо!

ответ

0

Это может быть боль в заднице, но единственный способ я знаю, как сделать это было бы установить это в GridView

AutoGenerateColumns="False" 

, а затем сделать DataBound элементы для всех столбцов. Если вы хотите, чтобы заголовок столбца был таким же, как имя столбца набора данных, просто не устанавливайте HeaderText в новый boundField();

вы можете сделать это прямо на странице .aspx, как так

<asp:GridView ID="Gridview1" runat="server" CellPadding="4" 
    ForeColor="#333333" GridLines="None" AutoGenerateColumns="False"> 
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
    <Columns> 
     <asp:TemplateField ShowHeader="False"> 
      <ItemTemplate> 
       <asp:LinkButton ID="NONOPSgridviewDelete" runat="server" CausesValidation="false" 
        CommandName="Delete" Text="Delete"></asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <!-- These are the boundedfields of the rest of your dataset --> 
     <asp:BoundField DataField="Firstname"/> 
     <asp:BoundField DataField="Lastname" /> 
    </Columns> 
</asp:GridView> 

надеюсь, что это помогает,

0

Вы можете попробовать добавить новый столбец в источнике данных?
Или вы можете скопировать источник данных в новый новый datatable и добавить новый столбец. После этого свяжите это, как datasource, с вашей сеткой.
Хороший способ редактирования источника данных состоит в том, что если вы переупорядочиваете данные в своем описании сетки, возможно, не так, как вам нравится, если они не сложены в источнике данных.

Смежные вопросы