博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

GridView 模板列中用函数绑定数据

Posted on 2008-06-26 15:29  LonelyStar  阅读(702)  评论(0编辑  收藏  举报
aspx页面
 1<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
 2            <Columns>
 3                <asp:TemplateField HeaderText="Sex">
 4                    <ItemTemplate>
 5                        <asp:Label ID="Label1" runat="server" Text='<%#DisplaySexName(DataBinder.Eval(Container,"DataItem").ToString()) %>'></asp:Label>
 6                    </ItemTemplate> 
 7                </asp:TemplateField>
 8            </Columns>
 9        </asp:GridView>
10       <br />
11       <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
12            <Columns>
13                <asp:BoundField HeaderText="Name" DataField="Name" /> 
14                <asp:TemplateField HeaderText="Sex">
15                    <ItemTemplate>
16                        <asp:Label ID="Label1" runat="server" Text='<%#DisplaySexName(DataBinder.Eval(Container,"DataItem.Sex").ToString()) %>'></asp:Label>
17                    </ItemTemplate> 
18                </asp:TemplateField>
19            </Columns>
20        </asp:GridView> 
cs页面

 1public partial class WebForm1 : System.Web.UI.Page
 2    {
 3        protected void Page_Load(object sender, EventArgs e)
 4        {
 5
 6            this.InitGridView1();
 7            this.InitGridView2();
 8        }

 9
10        private void InitGridView1()
11        {
12            List<string> list = new List<string>();
13            for (int i = 0; i < 10; i++)
14            {
15                list.Add((i % 2).ToString());
16            }

17
18            this.GridView1.DataSource = list;
19            this.GridView1.DataBind();
20        }

21
22        private void InitGridView2()
23        {
24            List<Student> list = new List<Student>();
25            for (int i = 0; i < 10; i++)
26            {
27                Student student = new Student();
28                student.Name = "name" + i.ToString();
29                student.Sex = (i % 2).ToString();
30                list.Add(student);
31            }

32            this.GridView2.DataSource = list;
33            this.GridView2.DataBind();
34        }

35
36        protected string DisplaySexName(string sex)
37        {
38            if (sex == "0")
39            {
40                return "male";
41            }

42            else
43            {
44                return "female";
45            }

46        }

47
48    }

49
50    public class Student
51    {
52        private string name;
53
54        public string Name
55        {
56            get return name; }
57            set { name = value; }
58        }

59        private string sex;
60
61        public string Sex
62        {
63            get return sex; }
64            set { sex = value; }
65        }

66    }

如果数据源是一个DataTable的话,则用下面方法绑定

 1    <ItemTemplate>
 2        <table border="1" width="100%">
 3            <tr>
 4                <td class="ContentTitle">
 5                    Depart</td>
 6                <td>
 7                    <%#Eval("FieldName1")%></td>
 8            </tr> 
 9            <tr>
10                <td class="ContentTitle">
11                    Location</td>
12                <td colspan="5">
13               <%#GetStopListByRequestId(Eval("FieldName2").ToString())%> 
14                </td>
15            </tr>
16        </table>
17    </ItemTemplate>