Link to home
Start Free TrialLog in
Avatar of ube100
ube100Flag for United Kingdom of Great Britain and Northern Ireland

asked on

assigning the data source to a data grid

Hi,

I'm getting a web service response as List<T> and at the moment I'm assigning it to a datagrid data source: i.e.

Exams.ExamBookingService.ExamBookingServiceSoapClient target = new Exams.ExamBookingService.ExamBookingServiceSoapClient();
                GetExamsServiceResponse esr;

                esr = target.GetActiveExams("O6UJ9A001SUJ", "241222576");
                GridView1.DataSource = esr.ExamsDisplay;
                GridView1.DataBind();

The problem is I don't want to show all the column in the list but rather want only the few columns in my grid. How do I manipulate the columns in the grid at run time and where do I assign the datasource to the grid?

Please someone help me?

Thanks in advance!
Avatar of BuggyCoder
BuggyCoder
Flag of India image

you have to use template field:-
 <asp:TemplateField HeaderText="FirstName">
                     <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# ((Customer)Container.DataItem).CustPerson.FirstName %>'></asp:Label>
                    </ItemTemplate>
 </asp:TemplateField>

Open in new window

Refer to the following url for more detail:-
http://weblogs.asp.net/gurusarkar/archive/2010/04/28/binding-list-of-custom-class-to-gridview-or-listview-control.aspx
Avatar of Meir Rivkin
do u want to bind the list to a specific column in your grid?
Avatar of ube100

ASKER

My List got about 10 columns but I just want to display only 6 columns in my grid.
if the 6 columns are predefined then u can remove them from the list before bind to the grid.
did you follow the link i mentioned!!!
Also I hope you know how to use <Columns> and <ItemTemplate> tags in gridview.
Avatar of ube100

ASKER

Yes I followed the link and this is what I done:

 <Columns>
    <asp:TemplateField HeaderText="ExamCode" runat="server">
                     <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# (Container.DataItem) .ExamCode%>'></asp:Label>
                    </ItemTemplate>
    </asp:TemplateField>
    </Columns>

But I'm getting following error message:
Object does not contain a definition for 'ExamCode' and no extension method 'ExamCode' accepting a first argument of type 'Object' could be found.
ASKER CERTIFIED SOLUTION
Avatar of BuggyCoder
BuggyCoder
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Container.DataItem is the the type T in your list so for example if the object is Person and u want to bind the ID then u need to do:
<asp:Label ID="Label2" runat="server" Text='<%# ((Person)(Container.DataItem)).ID%>'></asp:Label>
Avatar of ube100

ASKER

Thanks!!!