asp.net 数据绑定到属性、集合、表达式、方法

ASP.NET 引入了新的声明性数据绑定语法。这种非常灵活的语法允许开发人员不仅可以绑定到数据源,而且可以绑定到简单属性、集合、表达式甚至是从方法调用返回的结果。下表显示了新语法的一些示例。

 

简单属性Customer: <%# custID %>
集合Orders: <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
表达式Contact: <%# ( customer.First Name + " " + customer.LastName ) %>
方法结果Outstanding Balance: <%# GetBalance(custID) %>

1. 绑定到属性

C#:

void  Page_Load(Object sender, EventArgs e) 
ExpandedBlockStart.gifContractedBlock.gif
{
     Page.DataBind();
}

        
string  custID
ExpandedBlockStart.gifContractedBlock.gif
{
ExpandedSubBlockStart.gifContractedSubBlock.gif       
get 
{
                
return "ALFKI"
;
            }

}

        
int  orderCount
ExpandedBlockStart.gifContractedBlock.gif
{
ExpandedSubBlockStart.gifContractedSubBlock.gif       
get 
{
                
return 11
;
            }

}

 ASP:

<body>

    
<h3><font face="宋体">到页属性的数据绑定</font></h3>

    
<form runat=server>
    
ExpandedBlockStart.gifContractedBlock.gif        客户:
<b><%# custID %></b><br>
ExpandedBlockStart.gifContractedBlock.gif        未结的订单:
<b><%# orderCount %></b>

    
</form>

</body>

2. 绑定到集合和列表

绑定到Array List

C# : 

void  Page_Load(Object Sender, EventArgs E)
ExpandedBlockStart.gifContractedBlock.gif
{
   
if (!
Page.IsPostBack) 
ExpandedSubBlockStart.gifContractedSubBlock.gif   
{
       ArrayList values 
= new
 ArrayList();
       values.Add (
"IN"
);
       values.Add (
"KS"
);
       values.Add (
"MD"
);
       values.Add (
"MI"
);
       values.Add (
"OR"
);
       values.Add (
"TN"
);

       DropDown1.DataSource 
=
 values;
       DropDown1.DataBind();
     }

}


void  SubmitBtn_Click(Object sender, EventArgs e) 
ExpandedBlockStart.gifContractedBlock.gif
{
     Label1.Text 
= "您选择了:" +
    DropDown1.SelectedItem.Text;
}

  
ASP:

 

<body>
    
<h3><font face="宋体">数据绑定 DropDownList</font></h3>

    
<form runat=server>
    
        
<asp:DropDownList id="DropDown1" runat="server" />

        
<asp:button Text="提交" OnClick="SubmitBtn_Click" runat=server/>

        
<p>
        
        
<asp:Label id=Label1 font-name="宋体" font-size="10.5pt" runat="server" />

    
</form>

</body>

绑定到Hash Table

C#:

void  Page_Load(Object sender, EventArgs e) 
ExpandedBlockStart.gifContractedBlock.gif
{
     
if (!
Page.IsPostBack) 
ExpandedSubBlockStart.gifContractedSubBlock.gif     
{
         Hashtable h 
= new
 Hashtable();
         h.Add (
"键 1""值 1"
);
         h.Add (
"键 2""值 2"
);
         h.Add (
"键 3""值 3"
);

         MyDataList.DataSource 
=
 h;
         MyDataList.DataBind();
      }

}

ASP:

3. 绑定到方法或表达式

<body>

    
<h3><font face="宋体">到哈希表的数据绑定</font></h3>

    
<form runat=server>

        
<asp:DataList id="MyDataList" runat="server"
          BorderColor
="black"
          BorderWidth
="1"
          GridLines
="Both"
          CellPadding
="4"
          CellSpacing
="0"
          
>

            
<ItemTemplate>
ExpandedBlockStart.gifContractedBlock.gif                
<%# ((DictionaryEntry)Container.DataItem).Key %>  :
ExpandedBlockStart.gifContractedBlock.gif                
<%# ((DictionaryEntry)Container.DataItem).Value %>

            
</ItemTemplate>

        
</asp:DataList>

    
</form>

</body>

 绑定时的表达式:<%# CType(DataBinder.Eval(Container.DataItem, "BoolValue"), Boolean) %>

C#: 

void  Page_Load(Object Src, EventArgs E) 
ExpandedBlockStart.gifContractedBlock.gif
{
     
if (!
Page.IsPostBack) 
ExpandedSubBlockStart.gifContractedSubBlock.gif     
{
         ArrayList values 
= new
 ArrayList();

         values.Add (
0
);
         values.Add (
1
);
         values.Add (
2
);
         values.Add (
3
);
         values.Add (
4
);
         values.Add (
5
);
         values.Add (
6
);

         DataList1.DataSource 
=
 values;
         DataList1.DataBind();
      }

}


String EvenOrOdd(
int  number) 
ExpandedBlockStart.gifContractedBlock.gif
{
    
if ((number % 2== 0
)
        
return "偶数"
;
    
else

        
return "奇数";
}

ASP:

<body>

    
<h3><font face="宋体">到方法和表达式的数据绑定</font></h3>

    
<form runat=server>

      
<asp:DataList id="DataList1" runat="server"
        BorderColor
="black"
        BorderWidth
="1"
        GridLines
="Both"
        CellPadding
="3"
        CellSpacing
="0"
        
>

        
<ItemTemplate>
ExpandedBlockStart.gifContractedBlock.gif          数字值:
<%# Container.DataItem %>
ExpandedBlockStart.gifContractedBlock.gif          偶/奇:
<%# EvenOrOdd((int) Container.DataItem) %>
        
</ItemTemplate>

      
</asp:datalist>

    
</form>

</body>

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1716585

转载于:https://www.cnblogs.com/hongyuniu/archive/2007/07/31/837753.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值