C# 赢得比赛';Web部件生命周期中的t fire
我有一个简单的网页部件。单击“添加”链接,设置2个可见文本框。键入一些文本并单击“保存”按钮,但单击事件不会触发。我正在粘贴代码,希望得到一些建议。我一直在寻找解决方案,但没有找到任何可以继续下去的方法。我知道问题的症结所在,但不知道如何纠正。在页面呈现之前,我需要能够使用处理程序sotimes进行连接和事件处理,并且我尝试覆盖OnPreRender方法,但它并没有在适当的时候工作 我需要解决的另一个小问题是onFocus方法在txtMyLinkName.Focus()中不起作用。谢谢你的帮助里索C# 赢得比赛';Web部件生命周期中的t fire,c#,asp.net,C#,Asp.net,我有一个简单的网页部件。单击“添加”链接,设置2个可见文本框。键入一些文本并单击“保存”按钮,但单击事件不会触发。我正在粘贴代码,希望得到一些建议。我一直在寻找解决方案,但没有找到任何可以继续下去的方法。我知道问题的症结所在,但不知道如何纠正。在页面呈现之前,我需要能够使用处理程序sotimes进行连接和事件处理,并且我尝试覆盖OnPreRender方法,但它并没有在适当的时候工作 我需要解决的另一个小问题是onFocus方法在txtMyLinkName.Focus()中不起作用。谢谢你的帮助里
public class MyLinks : WebPart
{
public static string m_Portal = ConfigurationManager.ConnectionStrings["dbPortal"].ConnectionString;
Panel pnlMyLinks = new Panel();
Label lblError = new Label();
Label lblMyLinkURL = new Label();
Label lblMyLinkName = new Label();
TextBox txtMyLinkName = new TextBox();
TextBox txtMyLinkURL = new TextBox();
Button btnSaveMyLink = new Button();
LinkButton lbMyLinkAdd = new LinkButton();
Literal litP1 = new Literal();
Literal litBR1 = new Literal();
public cisf_MyLinks()
{
this.Title = "MyLinks";
this.ExportMode = WebPartExportMode.All;
}
protected override void CreateChildControls()
{
GetLinks();
base.CreateChildControls();
}
//protected override void OnPreRender(EventArgs e)
//{
// btnSaveMyLink.Text = "Save";
// btnSaveMyLink.Click += new EventHandler(btnSaveMyLink_Click);
// Controls.Add(btnSaveMyLink);
// base.OnPreRender(e);
//}
protected void GetLinks()
{
pnlMyLinks.Controls.Clear();
int i = 0;
lbMyLinkAdd.Text = "Add";
pnlMyLinks.Controls.Add(lbMyLinkAdd);
lbMyLinkAdd.Click += new EventHandler(lbMyLinkAdd_Click);
pnlMyLinks.Controls.Add(new LiteralControl("<br />"));
IDataReader drMyLinks = Get_MyLinks(Page.Request.ServerVariables["Logon_User"].Split("\\".ToCharArray())[1].ToLower());
while (drMyLinks.Read())
{
HyperLink hlMyLink = new HyperLink();
LinkButton lbDelMyLink = new LinkButton();
lbDelMyLink.Text = "(del)";
lbDelMyLink.ToolTip = "Delete this link";
lbDelMyLink.CssClass = "verytiny";
lbDelMyLink.Command += new CommandEventHandler(DelMyLink);
lbDelMyLink.CommandName = drMyLinks["id"].ToString();
pnlMyLinks.Controls.Add(lbDelMyLink);
pnlMyLinks.Controls.Add(new LiteralControl(" "));
hlMyLink.ID = "hl" + drMyLinks["ID"].ToString();
hlMyLink.Text = drMyLinks["Title"].ToString();
hlMyLink.NavigateUrl = drMyLinks["url"].ToString();
hlMyLink.Target = "_blank";
hlMyLink.ToolTip = drMyLinks["Title"].ToString();
pnlMyLinks.Controls.Add(hlMyLink);
pnlMyLinks.Controls.Add(new LiteralControl("<br />"));
if (drMyLinks["ID"].ToString() != "") { i += 1; }
}
this.Controls.Add(pnlMyLinks);
}
protected void lbMyLinkAdd_Click(object sender, EventArgs e)
{
lbMyLinkAdd.Visible = false;
lblMyLinkName.Visible = true;
txtMyLinkName.Visible = true;
litBR1.Visible = true;
lblMyLinkURL.Visible = true;
txtMyLinkURL.Visible = true;
btnSaveMyLink.Visible = true;
litP1.Visible = true;
(txtMyLinkName - dot focus)
lblMyLinkName.Text = "Link Name: ";
lblMyLinkURL.Text = "Link URL: ";
btnSaveMyLink.Text = "Save";
btnSaveMyLink.Click += new EventHandler(btnSaveMyLink_Click);
pnlMyLinks.Controls.Add(new LiteralControl("<table class='mylinksTable' cellpadding='0' cellspacing='0' border='1'><tr valign='top'><td>"));
pnlMyLinks.Controls.Add(lblMyLinkName);
pnlMyLinks.Controls.Add(new LiteralControl("</td><td>"));
pnlMyLinks.Controls.Add(txtMyLinkName);
pnlMyLinks.Controls.Add(new LiteralControl("</td></tr><tr valign='top'><td>"));
pnlMyLinks.Controls.Add(lblMyLinkURL);
pnlMyLinks.Controls.Add(new LiteralControl("</td><td>"));
pnlMyLinks.Controls.Add(txtMyLinkURL);
pnlMyLinks.Controls.Add(new LiteralControl("</td></tr><tr valign='top'><td colspan='2'>"));
pnlMyLinks.Controls.Add(btnSaveMyLink);
pnlMyLinks.Controls.Add(new LiteralControl("</td></tr></table>"));
this.Controls.Add(pnlMyLinks);
}
protected void btnSaveMyLink_Click(object sender, EventArgs e)
{
string thisURL;
if ((txtMyLinkName.Text != "") && (txtMyLinkURL.Text != ""))
{
if (txtMyLinkURL.Text.StartsWith("http"))
{ thisURL = txtMyLinkURL.Text; }
else { thisURL = "http://" + txtMyLinkURL.Text; }
AddMyLink(txtMyLinkName.Text, thisURL, Page.Request.ServerVariables["Logon_User"].Split("\\".ToCharArray())[1].ToLower());
GetLinks();
txtMyLinkName.Text = "";
txtMyLinkURL.Text = "";
lbMyLinkAdd.Visible = true;
}
lbMyLinkAdd.Visible = true;
lblMyLinkName.Visible = false;
txtMyLinkName.Visible = false;
litBR1.Visible = false;
lblMyLinkURL.Visible = false;
txtMyLinkURL.Visible = false;
btnSaveMyLink.Visible = false;
litP1.Visible = false;
}
}
公共类MyLink:WebPart
{
公共静态字符串m_Portal=ConfigurationManager.ConnectionString[“dbPortal”]。ConnectionString;
Panel pnlMyLinks=新面板();
Label lblError=新标签();
Label lblMyLinkURL=新标签();
Label lblMyLinkName=新标签();
TextBox txtMyLinkName=新建TextBox();
TextBox txtMyLinkURL=新建TextBox();
按钮btnSaveMyLink=新建按钮();
LinkButton lbMyLinkAdd=新建LinkButton();
Literal litP1=新的Literal();
Literal litBR1=新的Literal();
公共cisf_MyLink()
{
this.Title=“MyLinks”;
this.ExportMode=WebPartExportMode.All;
}
受保护的覆盖无效CreateChildControls()
{
GetLinks();
base.CreateChildControls();
}
//受保护的覆盖无效OnPreRender(EventArgs e)
//{
//btnSaveMyLink.Text=“保存”;
//btnSaveMyLink.Click+=新建事件处理程序(btnSaveMyLink\u Click);
//控件。添加(btnSaveMyLink);
//基于预渲染(e);
//}
受保护的void GetLinks()
{
pnlMyLinks.Controls.Clear();
int i=0;
lbMyLinkAdd.Text=“添加”;
pnlMyLinks.Controls.Add(lbMyLinkAdd);
lbMyLinkAdd.Click+=neweventhandler(lbMyLinkAdd\u Click);
pnlMyLinks.Controls.Add(新的LiteralControl(“
”);
IDataReader drMyLinks=Get_MyLinks(Page.Request.ServerVariables[“Logon\u User”].Split(“\\”.ToCharArray())[1].ToLower());
while(drMyLinks.Read())
{
HyperLink hlMyLink=新建超链接();
LinkButton lbDelMyLink=新建LinkButton();
lbDelMyLink.Text=“(del)”;
lbDelMyLink.ToolTip=“删除此链接”;
lbDelMyLink.CssClass=“verytyny”;
lbDelMyLink.Command+=新的CommandEventHandler(DelMyLink);
lbDelMyLink.CommandName=drMyLinks[“id”].ToString();
pnlMyLinks.Controls.Add(lbDelMyLink);
添加(新的LiteralControl(“”);
hlMyLink.ID=“hl”+drMyLinks[“ID”].ToString();
hlMyLink.Text=drMyLinks[“Title”].ToString();
hlMyLink.NavigateUrl=drMyLinks[“url”].ToString();
hlMyLink.Target=“\u blank”;
hlMyLink.ToolTip=drMyLinks[“Title”].ToString();
pnlMyLinks.Controls.Add(hlMyLink);
pnlMyLinks.Controls.Add(新的LiteralControl(“
”);
if(drMyLinks[“ID”].ToString()!=“”){i+=1;}
}
this.Controls.Add(pnlMyLinks);
}
受保护的void lbMyLinkAdd_单击(对象发送者,事件参数e)
{
lbMyLinkAdd.Visible=false;
lblMyLinkName.Visible=true;
txtMyLinkName.Visible=true;
litBR1.Visible=true;
lblMyLinkURL.Visible=true;
txtMyLinkURL.Visible=true;
btnSaveMyLink.Visible=true;
litP1.Visible=true;
(txtMyLinkName-点焦点)
lblMyLinkName.Text=“链接名称:”;
lblMyLinkURL.Text=“链接URL:”;
btnSaveMyLink.Text=“保存”;
btnSaveMyLink.Click+=新建事件处理程序(btnSaveMyLink\u Click);
添加(新的LiteralControl(“”);
pnlMyLinks.Controls.Add(lblMyLinkName);
添加(新的LiteralControl(“”);
pnlMyLinks.Controls.Add(txtMyLinkName);
添加(新的LiteralControl(“”);
添加(lblMyLinkURL);
添加(新的LiteralControl(“”);
pnlMyLinks.Controls.Add(txtMyLinkURL);
添加(新的LiteralControl(“”);
pnlMyLinks.Controls.Add(btnSaveMyLink);
添加(新的LiteralControl(“”);
this.Controls.Add(pnlMyLinks);
}
受保护的无效btnSaveMyLink\u单击(对象发送方,事件参数e)
{
字符串thisURL;
if((txtMyLinkName.Text!=“”)和&(txtMyLinkURL.Text!=“”)
{
if(txtMyLinkURL.Text.StartsWith(“http”))
{thisURL=txtMyLinkURL.Text;}
else{thisURL=“http://”+txtMyLinkURL.Text;}
AddMyLink(txtMyLinkName.Text,thisURL,Page.Request.ServerVariables[“Logon\u User”].Split(“\\”.ToCharArray())[1].ToLower());
GetLinks();
txtMyLinkName.Text=“”;
txtMyLinkURL.Text=“”;
lbMyLinkAdd.Visible=true;
}
lbMyLinkAdd.Visible=true;
lblMyLinkName.Visible=false;
txtMyLinkName.Visible=false;
litBR1.Visible=false;
lblMyLinkURL.Visible=false;
txtMyLinkURL.Visible=false;
btnSaveMyLink.Visible=false;
litP1.Visible=false;
}
}
如果要在code中创建按钮,则需要在加载页面中连接按钮,以便触发单击事件Page\u PreRender
太晚了。除了在已发布的Load
事件中添加控件外,还应设置ID字段,例如btnSaveMyLink.ID=“SaveLink”
设置为唯一值。这是一个.cs文件,没有页面加载。很抱歉错误提示页面加载
,但是我没有看到您正在创建Web部件
;不过,请尝试设置一个<代码