今天為了解決掉IE7的網址列的問題,花了一段時間。
在IE7的架構下,如果網站本身沒有加入「信任的網城」的話,會強制出現網址列與狀態列。解決的方式只能請使用者將網站加入信任,不然很多東西都會破功的,所以這只能治標,不能治本。
設定前:
設定:
設定後:
--
今天的作業是,要在main.aspx上點擊textbox,跳出一個showModalDialog,它會連結cal.aspx,然後從cal.aspx回傳複選的日期數字。
main.aspx:加入一個TextBox控制項。
main.aspx.cs:在Form_load中初始化控制項,加上javascript語法
protected void Page_Load(object sender, EventArgs e)
{
setCal(TextBox1);
}
protected void setCal(TextBox txt)
{
string url, js, sFeatures;
url = string.Format("cal.aspx?dates=");
sFeatures = "dialogHeight:250px; dialogWidth:300px; dialogTop:px; dialogLeft:px; center:Yes; help:No; resizable:No; status:No;scroll:No";
js = string.Format("var tmp=showModalDialog('{1}'+document.getElementById('{0}').value,'','{2}');if (tmp != null )document.getElementById('{0}').value=tmp;", txt.ClientID, url, sFeatures);
txt.Attributes["onclick"] = js;
txt.Attributes["readonly"] = "true";
}
cal.aspx
加入一個Calendar控制項,一個Button控制項
cal.aspx.cs
ArrayList astr = new ArrayList();//新增一個共用陣列,拿來存放日期
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["dates"] != null && Request.QueryString["dates"] != "")//從QueryString取得日期字串
{
string[] str = ((string)Request.QueryString["dates"]).Split(',');//Split函數中,記得用單引號就好。
astr.AddRange(str);//把字串陣列塞入共用陣列中}
}
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) //在日期控制項中做複選的準備
{
if (e.Day.IsOtherMonth)
{
e.Cell.Text = e.Day.DayNumberText;//如為其它月份就別出來亂了
}
else
{
HtmlInputCheckBox oCheckBox = new HtmlInputCheckBox();//產生一個HTML的checkbox
if (astr.Contains(e.Day.DayNumberText)) //如果天數包含在共用陣列中的話,打勾
oCheckBox.Checked = true;
oCheckBox.Value = e.Day.DayNumberText;
oCheckBox.ID = "SelectDate";//給定form的名字,會在送出時讀取這個form的資料
e.Cell.Controls.Clear();
e.Cell.Controls.Add(oCheckBox);
e.Cell.Controls.Add(new LiteralControl(e.Day.DayNumberText));
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string js;//用this.Request.Form["SelectDate"],讀取送出的資料
js = string.Format("window.returnValue='{0}';window.close();", this.Request.Form["SelectDate"]);//回傳日期
this.ClientScript.RegisterStartupScript(this.GetType(), "_Calendar", js, true);//註冊script
}
留言列表