LinkButton Custom Control
Hej jeg har lavet denne extension på en linkbutton. For at kunne lave popups nemt....-----------------------------------------------
public class PopupLinkButton : LinkButton
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.ClientScript();
}
[Bindable(true)]
public string PopupURL
{
get
{
// default value
if (ViewState["PopupURL"] == null)
{
return string.Empty;
}
// cast viewstate and return
else
{
return (string)ViewState["PopupURL"];
}
}
set
{
ViewState["PopupURL"] = value;
}
}
[Bindable(true)]
public string PopupName
{
get {
// default value
if (ViewState["PopupName"] == null)
{
return string.Empty;
}
// cast viewstate and return
else
{
return (string)ViewState["PopupName"];
}
}
set
{
ViewState["PopupName"] = value;
}
}
[Bindable(true)]
public string PopupHeight
{
get {
// default value
if (ViewState["PopupHeight"] == null)
{
return "500";
}
// cast viewstate and return
else
{
return (string)ViewState["PopupHeight"];
}
}
set
{
ViewState["PopupHeight"] = value;
}
}
[Bindable(true)]
public string PopupWidth
{
get {
// default value
if (ViewState["PopupWidth"] == null)
{
return "660";
}
// cast viewstate and return
else
{
return (string)ViewState["PopupWidth"];
}
}
set
{
ViewState["PopupWidth"] = value;
}
}
/// <summary>
///
/// function openWindow(Url, Name, Width, Height)
/// {
/// var newWin = window.open(Url,Name,"width=" + Width + ",height=" + Height + ",toolbar=false,locationbar=false,directories=false,status=true,menubar=false,scrollbars=auto,resizable=true,copyhistory=false");
/// return;
/// }
///
/// </summary>
///
private void ClientScript()
{
StringBuilder sb = new StringBuilder();
sb.Append("<script language=\"javascript\">\r");
sb.Append("function openWindow(Url, Name, Width, Height)\r");
sb.Append("{\r");
sb.Append("var newWin = window.open(Url,Name,'width='+Width+',height='+Height+',toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=1\');\r");
sb.Append("return;\r");
sb.Append("}\r");
sb.Append("</script>\r");
if (!Page.ClientScript.IsClientScriptBlockRegistered("openwindowFunction"))
{
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "openwindowFunction", sb.ToString());
}
}
[Bindable(true)]
public override string OnClientClick
{
get
{
string popupCall = "openWindow('" + this.PopupURL + "','" + this.PopupName + "'," + this.PopupWidth + "," + this.PopupHeight + ");";
return popupCall + base.OnClientClick;
}
set
{
string popupCall = "openWindow('" + this.PopupURL + "','" + this.PopupName + "'," + this.PopupWidth + "," + this.PopupHeight + ");";
base.OnClientClick = popupCall + value;
}
}
}
----------------------------------------
Mit problem er nu at hvis jeg bruger Eval i PopupUrl parser den det som tekst (det ser f.eks. sådan ud: <a onclick="openWindow('HandleOrder.aspx?OrderGUID=<%#Eval("GUID") %>','HandleOrder',660,500);">Handle order</a>) . Hvordan kan det løses?