制作一个简单的服务器端控制


2000082805.aspx 
------------------------------------------------------------- 
<%@ Register TagPrefix="CJ" Namespace="cjServerControls" %> 
<html> 
<head> 
</head> 
<body>

<form method="post" action="2000082605.aspx" runat="server"> 
<CJ:xmlDocReader listText="au_id" listValue="au_id" runat="server" 

</body> 
</html>


2000082805a.cs 
------------------------------------------------------------- 
using System; 
using System.Data; 
using System.IO; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls;

namespace cjServerControls 

public class xmlDocReader : Control, INamingContainer 

string _xmlPath; 
string _listID; 
string _listValue;

public string Path 

get { return _xmlPath; } 
set { _xmlPath = value; } 
}

public string listText 

get { return _listID; } 
set { _listID = value; } 
}

public string listValue 

get {return _listValue; } 
set {_listValue = value; } 
}

//Were are creating a member here so we can access it throughout the class 
DropDownList _DDL; 
DataGrid _DG; 
FileStream fs; 
StreamReader sr; 
DataSet ds; 
protected override void PreRender() 

if (Page.IsPostBack) { 
DataView dv = new DataView(ds.Tables[0]); 
dv.RowFilter = listValue + "='" + _DDL.SelectedItem.Text + "'"; 
_DG = new DataGrid(); 
_DG.DataSource = dv; 
_DG.DataBind(); 
Controls.Add(_DG); 

}


protected override void CreateChildControls() 

fs = new FileStream(Path, FileMode.Open, FileAccess.Read); 
sr = new StreamReader(fs); 
ds = new DataSet(); 
ds.ReadXml(sr); 
fs.Close();

_DDL = new DropDownList(); 
_DDL.DataTextField = listText; 
_DDL.DataValueField = listValue; 
_DDL.AutoPostBack = true; 
_DDL.DataSource = ds.Tables[0].DefaultView; 
_DDL.DataBind(); 
Controls.Add(_DDL);




}

authors.xml 
------------------------------------------------------------- 
<root> 

xmlns:xdo="urn:schemas-microsoft-com:xml-xdo" xdo:DataSetName="DocumentElement"> 
<element name="Table"> 
<complexType content="elementOnly"> 
<element name="au_id" type="string"></element> 
<element name="au_lname" type="string"></element> 
<element name="au_fname" type="string"></element> 
<element name="phone" type="string"></element> 
<element name="address" minOccurs="0" type="string"></element> 
<element name="city" minOccurs="0" type="string"></element> 
<element name="state" minOccurs="0" type="string"></element> 
<element name="zip" minOccurs="0" type="string"></element> 
<element name="contract" type="boolean"></element> 
</complexType> 
<unique name="Constraint1" xdo:PrimaryKey="True"> 
<selector>.</selector> 
<field>au_id</field> 
</unique> 
</element> 
</schema> 
<DocumentElement> 
<Table> 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值