页面显示: <%#show_web(container.dataitem("web"))%> 后台程序: function show_web(byval fld as object) as string if fld<>"" then return "<a href=""" & fld & """ target=""_blank"">网站</a>" end if end function
string sql="Select id,cname,allmoney,address from [1200m] order by cast(allmoney as float) desc"; SqlDataAdapter da=new SqlDataAdapter(sql,conn); DataSet ds=new DataSet(); da.Fill(ds,"changnews");
string sql="Select id,cname,allmoney,address from [500m] order by cast(allmoney as float) desc"; SqlDataAdapter da=new SqlDataAdapter(sql,conn); DataSet ds=new DataSet(); da.Fill(ds,"changnews");
没有见过
function
end function
?????????????
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink ID="hlResource" text='<%# DataBinder.Eval(Container,"DataItem.地址字段名")%>' Target=_blank Width=80% Runat=server>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>然后再.cs中写上如下代码:protected void OnResourceItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType ==ListItemType.Item || e.Item.ItemType ==ListItemType.AlternatingItem )
{
HyperLink hlRead; this.hlRead =(HyperLink)(e.Item.FindControl ("hlResource"));
if (判断Address是null直)
{ this.hlRead.NavigateUrl=AddURL(e.Item.ItemIndex); }
}
}
ASP.ShowAll_aspx”并不包含对“hlRead”的定义
protected void OnResourceItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType ==ListItemType.Item || e.Item.ItemType ==ListItemType.AlternatingItem )
{
HyperLink hlRead; this.hlRead =(HyperLink)(e.Item.FindControl ("hlResource"));
if (address==null)
{ this.hlRead.NavigateUrl=AddURL(e.Item.ItemIndex); }
}
}
<%@Import Namespace="System.Data"%>
<script language="C#" runat="server">
void Page_Load(object src,EventArgs e){
DataTable table=new DataTable();
table.Columns.Add(new DataColumn("addr",typeof(string)));
table.Columns.Add(new DataColumn("name",typeof(string)));
DataRow row;
for(int i=0;i<10;i++){
row=table.NewRow();
if(i%3==0)
row["addr"]=null;
else
row["addr"]="addr "+i.ToString();
row["name"]="name "+i.ToString();
table.Rows.Add(row);
}
grid.DataSource=table;
grid.DataBind();
}void BindAddr(object src,DataGridItemEventArgs e){
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
if(Convert.IsDBNull(((DataRowView)e.Item.DataItem)["addr"])){
HyperLink link=(HyperLink)e.Item.Cells[0].Controls[0];
link.NavigateUrl=null;
}
}
}
</script>
<HTML><HEAD>
<TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD><BODY>
<form runat="server">
<asp:DataGrid runat="server" id="grid" autogenerateColumns=false OnItemDataBound="BindAddr">
<Columns>
<asp:HyperLinkColumn runat="server" DataTextField="name" DataNavigateUrlField="name" DataNavigateUrlFormatString="test.aspx?id={0}"/>
</Columns>
</asp:DataGrid>
</form></BODY></HTML>
int startIndex;
void BindGrid()
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
conn.Open();
string sql="Select id,cname,allmoney,address from [1200m] order by cast(allmoney as float) desc";
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"changnews");
Grid1.DataSource=ds.Tables["changnews"].DefaultView;
Grid1.DataBind();
}
void Page_Load(Object src,EventArgs e)
{
if(!IsPostBack) {
startIndex =0;
}
BindGrid();
}
void ChangePage(Object sender, DataGridPageChangedEventArgs e)
{
startIndex = e.NewPageIndex*Grid1.PageSize;
Grid1.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
void BindAddress(object src,DataGridItemEventArgs e){
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
if(Convert.IsDBNull(((DataRowView)e.Item.DataItem)["address"]))
{
HyperLink link=(HyperLink)e.Item.Cells[0].Controls[0];
link.NavigateUrl=null;
}
}
}
</script> <asp:DataGrid
AllowPaging="True"
PageSize="25"
Border="1"
ItemStyle-Height="25"
Width="560"
PagerStyle-Mode="NumericPages"
OnPageindexChanged="ChangePage"
AutoGenerateColumns="false"
id="Grid1" runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLinkColumn DataTextField="cname" DataNavigateUrlField="cname" DataNavigateUrlFormatString="Showyiid.aspx?id={0}" runat="server"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="allmoney" ItemStyle-Width="24%" ItemStyle-HorizontalAlign="left"/>
</Columns>
</asp:DataGrid>
异常详细信息: System.InvalidCastException: 指定的转换无效。
是不是和address直有关系,有的是null直,有的直为空。是不是这儿转换无效。请帮忙!
--------------------------------------
<%@Page debug=true%>
<%@Import Namespace="System.Data"%>
<%@Import Namespace="System.IO"%>
<script language="C#" runat="server">
void Page_Load(object src,EventArgs e){
DataTable table=new DataTable();
table.Columns.Add(new DataColumn("addr",typeof(string)));
table.Columns.Add(new DataColumn("name",typeof(string)));
DataRow row;
for(int i=0;i<10;i++){
row=table.NewRow();
if(i%3==0)
row["addr"]=null;
else
row["addr"]="addr "+i.ToString();
row["name"]="name "+i.ToString();
table.Rows.Add(row);
}
grid.DataSource=table;
grid.DataBind();
}int i=1;//起始编号为1
void BindAddr(object src,DataGridItemEventArgs e){
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
Literal lctrl=(Literal)e.Item.FindControl("idcol");
if(lctrl!=null){
lctrl.Text=i.ToString();
i++;
}
if(Convert.IsDBNull(((DataRowView)e.Item.DataItem)["addr"])){
HyperLink link=(HyperLink)e.Item.Cells[1].Controls[0];
link.NavigateUrl=null;
}
}
}</script>
<HTML><HEAD>
<TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD><BODY>
<form runat="server">
<asp:DataGrid runat="server" id="grid" autogenerateColumns=false OnItemDataBound="BindAddr" width="300">
<Columns>
<asp:TemplateColumn HeaderText="编号">
<ItemTemplate>
<asp:Literal runat="server" id="idcol"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:HyperLinkColumn runat="server" DataTextField="name" DataNavigateUrlField="name" DataNavigateUrlFormatString="test.aspx?id={0}" HeaderText="链接"/>
</Columns>
</asp:DataGrid>
</form></BODY></HTML>
<script language="C#" runat="server">
int startIndex;
void BindGrid()
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
conn.Open();
string sql="Select id,cname,allmoney,address from [500m] order by cast(allmoney as float) desc";
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"changnews");
Grid1.DataSource=ds.Tables["changnews"].DefaultView;
Grid1.DataBind();
}
void Page_Load(Object src,EventArgs e)
{
if(!IsPostBack) {
startIndex =0;
}
BindGrid();
} void ChangePage(Object sender, DataGridPageChangedEventArgs e)
{
startIndex = e.NewPageIndex*Grid1.PageSize;
Grid1.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
int i=1;//启始编号
void BindAddr(object src,DataGridItemEventArgs e){
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
Literal lctrl=(Literal)e.Item.FindControl("idcol");
if(lctrl!=null){
lctrl.Text=i.ToString();
i++;
}
if(Convert.IsDBNull(((DataRowView)e.Item.DataItem)["address"])){
HyperLink link=(HyperLink)e.Item.Cells[0].Controls[0];
link.NavigateUrl=null;
}
}
}
</script> <Form runat="server">
<asp:DataGrid
AllowPaging="True"
PageSize="25"
Border="1"
ItemStyle-Height="25"
Width="560"
PagerStyle-Mode="NumericPages"
OnPageindexChanged="ChangePage"
CellPadding="0"
CellSpacing="0"
AutoGenerateColumns="false"
OnItemDataBound="BindAddr"
id="Grid1" runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>//这个Literal标记是什么意思,我怎么查不到
<asp:Literal runat="server" id="idcol"/>
</ItemTemplate>
</asp:TemplateColumn> <asp:HyperLinkColumn DataTextField="cname" DataNavigateUrlField="id" DataNavigateUrlFormatString="Showyiid.aspx?id={0}" runat="server"/>
<asp:BoundColumn DataField="allmoney" HeaderText="" ItemStyle-Width="24%" ItemStyle-HorizontalAlign="left"/>
</Columns>
</asp:DataGrid>
</Form>