有一存储过程,结果列个数未知,
如何在C#中与datalist绑定(不是使用html)
如何在C#中与datalist绑定(不是使用html)
解决方案 »
- Gridview数据导出Excel后,打开文件问题
- C# 如何实现类似WSASend()的方法。Socket相关。
- 批量插入文本框中的数据到access数据库
- c# 如何引用PB的DLL文件
- ###导出EXCEL时应用程序自动关闭的问题`~~~###
- 使用三层或多层开发,在业务逻辑层怎么进行事务控制
- 在提示符下输入CSC,为什么提示“不是内部后外部命令,也不是可运行的程序或批处理文件”
- 怎么循环几个控件的名字
- 弄了一天了也没搞定...Asp.NET下:未能获取此实现的 CryptoAPI 加密服务提供程序(CSP)。
- 在这板块,终于升到了4角,送粪
- 怎样下载IBuySpy Portal?
- 关于WaitCursor属性的疑问?
// 套用显示方式模板/*简单图文、详细图文、文字链接*/
SelectTemplate(int.Parse(Session["mode"].ToString()));--------------------------------------------------------------------------
// 选择一合适的模板
public void SelectTemplate(int mode)
{
switch(mode)
{
case 0: // 简单图文
PageSize = 12;
list.RepeatColumns = 3;
list.RepeatDirection = RepeatDirection.Horizontal; list.RepeatLayout = RepeatLayout.Table;
//list.BorderWidth = Unit.Pixel(1);
//list.BorderStyle = BorderStyle.Solid;
list.ItemStyle.Width = Unit.Pixel(195); list.ItemStyle.VerticalAlign = VerticalAlign.Top;
list.ItemTemplate = new SimpleTemplate(ListItemType.Item);
break;
case 1: // 详细图文
PageSize = 4;
list.RepeatColumns = 0;
list.RepeatDirection = RepeatDirection.Vertical;
list.RepeatLayout = RepeatLayout.Table;
list.GridLines = GridLines.None;
list.ItemTemplate = new DetailTemplate(ListItemType.Item);
break;
case 2: // 文字链接
PageSize = 20;
list.RepeatColumns = 0;
list.RepeatDirection = RepeatDirection.Vertical;
list.RepeatLayout = RepeatLayout.Table;
list.GridLines = GridLines.None;
list.ItemTemplate = new TextLinkTemplate(ListItemType.Item);
break;
}
}
}
------------------------------------------------------------------------// 简约方式显示模板
public class SimpleTemplate : ITemplate
{
ListItemType templateType;
public SimpleTemplate(ListItemType type)
{
templateType = type;
} public void InstantiateIn(System.Web.UI.Control container)
{
Literal lc = new Literal();
switch(templateType)
{
case ListItemType.Header:
break;
case ListItemType.Item:
lc.Text = "<TABLE border=0 cellspacing=4 cellPadding=0 style='font-family:宋体;font-size:9pt'>";
lc.DataBinding += new EventHandler(TemplateControl_DataBinding);
break;
case ListItemType.AlternatingItem:
break;
case ListItemType.Footer:
break;
}
container.Controls.Add(lc);
} private void TemplateControl_DataBinding(object sender,System.EventArgs e)
{
Literal lc;
lc = (Literal) sender;
DataListItem Container = (DataListItem) lc.NamingContainer;
String pictureID = DataBinder.Eval(Container.DataItem, "PictureID").ToString(); PhotoLib.PicturesDB picturesDB = new PhotoLib.PicturesDB();
PhotoLib.Pictures pictures = new PhotoLib.Pictures();
DataSet ds = new DataSet(); pictures = picturesDB.GetPictures(pictureID);
ds = picturesDB.GetPictureDetails(pictureID); int count = ds.Tables["PictureDetails"].Rows.Count; // 获得数据集的行数
// 获得第一行的相关数据(要注意空值的检查)
String pictureImage = ds.Tables["PictureDetails"].Rows[0].ItemArray[5].ToString(); // 图片文件名
String author = ds.Tables["PictureDetails"].Rows[0].ItemArray[6].ToString(); // 作者
String user = pictures.UserID;
String auditDate = pictures.AuditDate.ToLongDateString();
//String pictureDate = "";
//if(ds.Tables["PictureDetails"].Rows[0].ItemArray[1] != DBNull.Value)
// pictureDate = ((DateTime)ds.Tables["PictureDetails"].Rows[0].ItemArray[1]).ToLongDateString(); // 拍摄日期 // 获得图片文件的路径(此处肯定是小图)
String yearstr = pictureImage.Substring(0,4);
String datestr = pictureImage.Substring(0,8);
String typestr = pictureImage.Substring(11,1); String path = "PicLib/SmallPic/" + yearstr +"p/PhotoC/" + datestr + "/"; // 分类图片
if(typestr == "b")
path = "PicLib/SmallPic/" + yearstr +"p/PhotoP/" + datestr + "/"; // 专业图片 string cap = pictures.Caption;
if(cap.Length>25)
cap = cap.Substring(0,22) + "..."; // 输出样式
lc.Text += "<TR><TD height='130'width=195 valign=middle align=center>"; // 百分比方式无效??
lc.Text += "<a href='PictureDetails.aspx?pid="+ pictureID + "' target=_blank><img src='" + path + pictureImage + "' border=0></a>";
lc.Text += "</TD></TR><TR><TD valign=top height=32>";
if(count>1)
lc.Text += "◆ " + "<a href='PictureDetails.aspx?pid="+ pictureID + "' target=_blank>" + cap + "(" + count.ToString() + "张)</a>";
else
lc.Text += "◆ " + "<a href='PictureDetails.aspx?pid="+ pictureID + "' target=_blank>" + cap + "</a>";
lc.Text += "</TD></TR><TR><TD height=20>";
//lc.Text += " 作者:" + author + " 上传日期:" + auditDate;
lc.Text += " 上传:" + user;
lc.Text += "</TD></TR><TR><TD align='middle' background='images/line03.gif' height='1'></TD></TR></TABLE>";
}
}-------------------------------------------------------------------------
演示例子请见
http://www.gdcic.net/photo/PicturesList.aspx?Type=1&scope=1
页面中有三种显示模式