在日历控件中添加了东西后,日历表格被撑大的问题

aiolia911 2007-06-25 09:54:11
protected void cal1_DayRender(object sender, DayRenderEventArgs e)
{
e.Cell.Controls.Add(new LiteralControl("<br/>Happy New Year!"));
}

代码是这样,能不能我在添加完后,日历表的每个单元格,也就是cell,保持大小不变呢?

怎么控制它啊?




还有一个问题:
HyperLink aHyperLink = new HyperLink();
aHyperLink.ImageUrl = "image/add_small.gif";
aHyperLink.ToolTip = "新增个人日程";
//aHyperLink.Target = "about:blank";
//aHyperLink.Text = e.Day.Date.Day.ToString();

aHyperLink.NavigateUrl = "schaddup.aspx?reurl=Default.aspx&day=" + d.Date.ToShortDateString();
c.Controls.Add(new LiteralControl(" " + " " + " " + " "));
c.Controls.Add(aHyperLink);


这样的代码,我想只让它最多在每个单元格,也就是每天里,最多显示3条记录?如何控制呢???
...全文
582 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
SassyBoy 2007-06-26
  • 打赏
  • 举报
回复
贴出生成的html代码。
aiolia911 2007-06-26
  • 打赏
  • 举报
回复
昨天你说的:
第一个问题,在表格内加上css
word-break:break-all


不行啊,不知道为什么。。。其他的可以控制,但是就是到了每个日历表里面的单元格,高度就控制不了?

还有其他方法吗
aiolia911 2007-06-26
  • 打赏
  • 举报
回复
恩。。。研究研究去
SassyBoy 2007-06-26
  • 打赏
  • 举报
回复
因为你用了while (objdatareader.Read())
所以会一直循环,所以要定义一个计算器 int iCount=0;当iCount=3时就用...代替后来的并且跳出循环,修改如下,不知道我有没有理解错呢...

private void showInfo(CalendarDay d, TableCell c)
{
DateTime FDate = new DateTime();
string Subject;
SqlCommand objcommand = new SqlCommand();
//SqlDataReader objdatareader;
DataSet ds=SqlHelper.ExecuteDataset(...);//改为用DataSet来取,你会实现吧?
DateTime Date = new DateTime();
Date = d.Date;
ScheduleDA scheduleDadaAccess = new ScheduleDA();
objcommand = scheduleDadaAccess.SchRead(Convert.ToInt16(133), Date);
objcommand.Connection.Open();
objdatareader = objcommand.ExecuteReader();

int iCount=0;//modify

try
{
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)//modify
{
int ID = Int32.Parse(objdatareader.GetInt32(1).ToString());
FDate = DateTime.Parse(objdatareader.GetSqlDateTime(2).ToString());
string FDate_hour = FDate.Hour.ToString();
string FDate_Minute = FDate.Minute.ToString();
if (FDate_Minute == "0")
{
FDate_Minute = "00";
}
Subject = objdatareader.GetValue(0).ToString();
if (Subject.Length > 4)
{
Subject = Subject.Substring(0, 4);
Subject += "..";
}
HtmlAnchor a = new HtmlAnchor();
a.HRef = "schaddup.aspx?reurl=schedule.aspx&id=" + ID + "&day=" + d.Date.ToShortDateString();

a.InnerText = "★" + FDate_hour + ":" + FDate_Minute + " " + Subject + "";

//c.Controls.Add(new LiteralControl(" " + " " + " " + " "));
c.Controls.Add(new LiteralControl("<br>"));
c.Controls.Add(a);
c.Controls.Add(new LiteralControl("<br>"));

iCount++;
if(iCount==4)//第四个显示"..."
{
a.InnerText="...";
c.Controls.Add(new LiteralControl("<br>"));
c.Controls.Add(a);
c.Controls.Add(new LiteralControl("<br>"));
break;
}

}
objdatareader.Close();
objcommand.Connection.Close();
}
catch (Exception exc)
{
Response.Write(exc.ToString());
}
}

其它的修改一下就可以了...
aiolia911 2007-06-26
  • 打赏
  • 举报
回复
private void showInfo(CalendarDay d, TableCell c)
{
DateTime FDate = new DateTime();
string Subject;
SqlCommand objcommand = new SqlCommand();
SqlDataReader objdatareader;
DateTime Date = new DateTime();
Date = d.Date;
ScheduleDA scheduleDadaAccess = new ScheduleDA();
objcommand = scheduleDadaAccess.SchRead(Convert.ToInt16(133), Date);
objcommand.Connection.Open();
objdatareader = objcommand.ExecuteReader();
try
{
while (objdatareader.Read())
{
int ID = Int32.Parse(objdatareader.GetInt32(1).ToString());
FDate = DateTime.Parse(objdatareader.GetSqlDateTime(2).ToString());
string FDate_hour = FDate.Hour.ToString();
string FDate_Minute = FDate.Minute.ToString();
if (FDate_Minute == "0")
{
FDate_Minute = "00";
}
Subject = objdatareader.GetValue(0).ToString();
if (Subject.Length > 4)
{
Subject = Subject.Substring(0, 4);
Subject += "..";
}
HtmlAnchor a = new HtmlAnchor();
a.HRef = "schaddup.aspx?reurl=schedule.aspx&id=" + ID + "&day=" + d.Date.ToShortDateString();

a.InnerText = "★" + FDate_hour + ":" + FDate_Minute + " " + Subject + "";

//c.Controls.Add(new LiteralControl(" " + " " + " " + " "));
c.Controls.Add(new LiteralControl("<br>"));
c.Controls.Add(a);
c.Controls.Add(new LiteralControl("<br>"));

}
objdatareader.Close();
objcommand.Connection.Close();
}
catch (Exception exc)
{
Response.Write(exc.ToString());
}
}










这就是代码,给看看,怎么就让他显示3行数据
aiolia911 2007-06-25
  • 打赏
  • 举报
回复
HyperLink aHyperLink = new HyperLink();
aHyperLink.ImageUrl = "image/add_small.gif";
aHyperLink.ToolTip = "新增个人日程";
//aHyperLink.Target = "about:blank";
//aHyperLink.Text = e.Day.Date.Day.ToString();

aHyperLink.NavigateUrl = "schaddup.aspx?reurl=Default.aspx&day=" + d.Date.ToShortDateString();
c.Controls.Add(new LiteralControl(" " + " " + " " + " "));
c.Controls.Add(aHyperLink);

这段代码是在表格里添加一个日程(就是代表每天的表格),我在这天添加一个日程,就会显示一个,但是假如这天我添加了N个,不能都显示出来吧。。所以怎么能控制只显示几条呢?

明白?


SassyBoy 2007-06-25
  • 打赏
  • 举报
回复
第二个问题,就是,我都不明白你表达的意思,哈-_-#! :)
aiolia911 2007-06-25
  • 打赏
  • 举报
回复
第二个问题呢???
SassyBoy 2007-06-25
  • 打赏
  • 举报
回复
用生成的静态页面调试一下。
aiolia911 2007-06-25
  • 打赏
  • 举报
回复
怎么没效果???
SassyBoy 2007-06-25
  • 打赏
  • 举报
回复
贴出代码。。。
SassyBoy 2007-06-25
  • 打赏
  • 举报
回复
第一个问题,在表格内加上css
word-break:break-all
aiolia911 2007-06-25
  • 打赏
  • 举报
回复
是啊,怎么就显示3个呢
SassyBoy 2007-06-25
  • 打赏
  • 举报
回复
那你显示数据的时候只显示三个就行了,多了就用...代替吧。
aiolia911 2007-06-25
  • 打赏
  • 举报
回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧