我创建了动态标签,超链接和按钮......但按钮单击不会触发 [英] i created dynamic label, hyperlink and a button...but button click is not firing
本文介绍了我创建了动态标签,超链接和按钮......但按钮单击不会触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用系统;
使用 System.Collections.Generic;
使用 System.Linq;
使用 System.Web;
使用 System.Web.UI;
使用 System.Web.UI.WebControls;
使用 System.Data.SqlClient;
使用 System.Configuration;
使用 System.Data;
使用 System.IO;
使用 System.Collections;
使用 System.Text;
命名空间 WebApplication7
{
public partial class viewad1:System.Web.UI.Page
{
public string adv;
public string usr;
受保护 void Page_Load( object sender,EventArgs e)
{
if (!IsPostBack)
{
FillDropDownList();
FillDropDownList1();
}
}
受保护 void FillDropDownList()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings [ sampledbConnectionString]。ConnectionString);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter( 选择* FROM category,conn);
myda.Fill(ds);
conn.Close();
catddlist.DataSource = ds;
catddlist.DataTextField = category_name;
catddlist.DataValueField = category_id;
catddlist.DataBind();
catddlist.Items.Insert( 0 , new ListItem( 选择, 0\" 跨度>));
subcatlist.Items.Insert( 0 , new ListItem( 选择, 0\" 跨度>));
}
受保护 void FillDropDownList1()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings [ sampledbConnectionString]。ConnectionString);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter( 选择* FROM places,conn);
myda.Fill(ds);
conn.Close();
citylist.DataSource = ds;
citylist.DataTextField = cityname;
citylist.DataValueField = city;
citylist.DataBind();
citylist.Items.Insert( 0 , new ListItem( 选择, 0\" 跨度>));
}
// 双击公司的DropDown。;
protected void catddlist_SelectedIndexChanged( object sender,EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings [< span class =code-string> sampledbConnectionString]。ConnectionString);
conn.Open();
int catid = Convert.ToInt32(catddlist.SelectedValue);
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter( 选择subcategory_id,subcategoryname FROM子类别,其中category_id = + catid,conn);
myda.Fill(ds);
conn.Close();
subcatlist.DataSource = ds;
subcatlist.DataTextField = subcategoryname;
subcatlist.DataValueField = subcategory_id;
subcatlist.DataBind();
subcatlist.Items.Insert( 0 , new ListItem( 选择, 0\" 跨度>));
}
受保护 void FillPage1()
{
ArrayList adlist = new ArrayList();
string sub = subcatlist.SelectedValue.ToString();
string cit = null ;
adlist = conclass1.getadbycat(sub,cit);
Panel linkpanel = new Panel();
int a = 0 ;
foreach (adclass ad in adlist)
{
Label op = new Label();
StringBuilder sb = new StringBuilder();
HyperLink link = new HyperLink();
sb.Append(
string .Format(
@ < table class = adtable >
< tr>
< th rowspan = 6 width = 150px >< ; img runat = server src ='{6}'/>< / th>
< th width = 50px >标题:
<表>< TBODY>< TR><表>< TBODY>< TR>< TD> {1}< / TD>< / TR>< / tbody的>< /表>< ; / tr>< / tbody>< / table>
< /第>< / TR>
< tr>
< th> Id:< / th>
< td> {0}< / td>
< / tr>
< tr>
< th>价格:< / th>
< td> {2} Rs< / td>
< / tr>
< tr>
< th>类型:< / th>
< td> {3}< / td>
< / tr>
< tr>
< th>描述:< / th>
< td> {4}< / td>
< / tr>
< tr>
< th>发布者:< / th>
< td> {5}< / td>
< / tr>
< tr>
< td colspan = 2 > {5}< / TD>
< / tr>
< / table>
,ad.product_id,ad.title,ad.price,ad.type,ad.description,ad.email_username,ad.imagepath));
if (sb.ToString()!= )
op.Text = sb.ToString();
else
op.Text = 无结果;
link.Text = 查看广告;
link.NavigateUrl = < span class =code-string> 〜/ userpage.aspx;
linkpanel.Controls.Add(op );
linkpanel.Controls.Add(link);
}
panelop.Controls.Add(linkpanel);
}
protected void FillPage()
{
ArrayList adlist = new ArrayList();
string sub = subcatlist.SelectedValue.ToString();
string cit = citylist.SelectedValue.ToString();
adlist = conclass1.getadbycat(sub,cit);
int a = 0 ;
Panel linkpanel = new Panel();
foreach (adclass ad in adlist)
{
标签op = new Label();
StringBuilder sb = new StringBuilder();
Button viewbutton = new Button();
adv = ad.product_id.ToString();
usr = ad.email_username.ToString();
sb.Append(
string .Format(
@ < table class = adtable >
< tr>
< th rowspan = 6 width = 150px >< img runat = server src ='{6}'/>< / th>
< th width = 50px >标题:
< table>< TBODY>< TR><表>< TBODY>< TR>< TD> {1}< / TD>< / TR>< / tbody的>< /表>< / TR> < / tbody>< / table>
< / th>& LT; / TR>
< tr>
< th> Id:< / th>
< td> {0}< / td>
< / tr>
< tr>
< th>价格:< / th>
< td> {2} Rs< / td>
< / tr>
< tr>
< th>类型:< / th>
< td> {3}< / td>
< / tr>
< tr>
< th>描述:< / th>
< td> {4}< / td>
< / tr>
< tr>
< th>发布者:< / th>
< td> {5}< / td>
< / tr>
< tr>
< td colspan = 2 > {5}< / TD>
< / tr>
< / table>
,ad.product_id,ad.title,ad.price,ad.type,ad.description,ad.email_username,ad.imagepath));
if (sb.ToString()!= )
op.Text = sb.ToString();
else
op.Text = 无结果;
viewbutton.Text = 查看广告;
viewbutton.Click + = viewbutton_Click;
linkpanel.Controls.Add(op);
linkpanel.Controls.Add(viewbutton);
}
panelop.Controls.Add(linkpanel);
}
受保护 void vi ewbutton_Click( object sender,EventArgs e)
{
Response.Redirect( login.aspx);
}
受保护 void subcatlist_SelectedIndexChanged( object sender,EventArgs e)
{
FillPage1();
if (!IsPostBack)
FillDropDownList1();
}
受保护 void citylist_SelectedIndexChanged(< span class =code-keyword> object sender,EventArgs e)
{
FillPage();
}
}
}
在此先感谢
解决方案
新的EventHandler()可以完美运行。
另外,
您可以使用ComandEventHandler,如 http://forums.asp.net/t/1286956.aspx?How+to+add+event+handlers+to+dynamic+controls [ ^ ]
你也可以在
中引用CommandEventHandler委托http://msdn.microsoft.com/en-us/library/system .web.ui.webcontrols.commandeventhandler(v = vs.110).aspx [ ^ ]
该行< pre lang =cs> viewbutton.Click + = viewbutton_Click;没有添加点击事件处理程序。
尝试viewbutton.Click + = new EventHandler(viewbutton_Click);
尝试以下
http://www.aspdotnet-suresh .com / 2012/07 / create-controls-dynamic-in-aspnet.html [ ^ ]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.IO;
using System.Collections;
using System.Text;
namespace WebApplication7
{
public partial class viewad1 : System.Web.UI.Page
{
public string adv;
public string usr;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FillDropDownList();
FillDropDownList1();
}
}
protected void FillDropDownList()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sampledbConnectionString"].ConnectionString);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter("Select * FROM category", conn);
myda.Fill(ds);
conn.Close();
catddlist.DataSource = ds;
catddlist.DataTextField = "category_name";
catddlist.DataValueField = "category_id";
catddlist.DataBind();
catddlist.Items.Insert(0, new ListItem("Select", "0"));
subcatlist.Items.Insert(0, new ListItem("Select", "0"));
}
protected void FillDropDownList1()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sampledbConnectionString"].ConnectionString);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter("Select * FROM places", conn);
myda.Fill(ds);
conn.Close();
citylist.DataSource = ds;
citylist.DataTextField = "cityname";
citylist.DataValueField = "city";
citylist.DataBind();
citylist.Items.Insert(0, new ListItem("Select", "0"));
}
//Double click on Company`s DropDown.;
protected void catddlist_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sampledbConnectionString"].ConnectionString);
conn.Open();
int catid = Convert.ToInt32(catddlist.SelectedValue);
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter("Select subcategory_id,subcategoryname FROM subcategory where category_id=" + catid, conn);
myda.Fill(ds);
conn.Close();
subcatlist.DataSource = ds;
subcatlist.DataTextField = "subcategoryname";
subcatlist.DataValueField = "subcategory_id";
subcatlist.DataBind();
subcatlist.Items.Insert(0, new ListItem("select", "0"));
}
protected void FillPage1()
{
ArrayList adlist = new ArrayList();
string sub = subcatlist.SelectedValue.ToString();
string cit = null;
adlist = conclass1.getadbycat(sub, cit);
Panel linkpanel = new Panel();
int a = 0;
foreach (adclass ad in adlist)
{
Label op = new Label();
StringBuilder sb = new StringBuilder();
HyperLink link = new HyperLink();
sb.Append(
string.Format(
@"<table class="adtable">
<tr>
<th rowspan="6" width="150px"><img runat="server" src='{6}' /></th>
<th width="50px">Title:
<table><tbody><tr><table><tbody><tr><td>{1}</td></tr></tbody></table></tr></tbody></table>
</th></tr>
<tr>
<th>Id: </th>
<td>{0}</td>
</tr>
<tr>
<th>Price: </th>
<td>{2} Rs</td>
</tr>
<tr>
<th>Type: </th>
<td>{3}</td>
</tr>
<tr>
<th>Description: </th>
<td>{4}</td>
</tr>
<tr>
<th>Posted by: </th>
<td>{5}</td>
</tr>
<tr>
<td colspan="2">{5}</td>
</tr>
</table>
", ad.product_id, ad.title, ad.price, ad.type, ad.description, ad.email_username, ad.imagepath));
if (sb.ToString() != "")
op.Text = sb.ToString();
else
op.Text = "No Results";
link.Text = "View ad";
link.NavigateUrl = "~/userpage.aspx";
linkpanel.Controls.Add(op);
linkpanel.Controls.Add(link);
}
panelop.Controls.Add(linkpanel);
}
protected void FillPage()
{
ArrayList adlist = new ArrayList();
string sub = subcatlist.SelectedValue.ToString();
string cit = citylist.SelectedValue.ToString();
adlist = conclass1.getadbycat(sub,cit);
int a = 0;
Panel linkpanel = new Panel();
foreach (adclass ad in adlist)
{
Label op = new Label();
StringBuilder sb = new StringBuilder();
Button viewbutton = new Button();
adv = ad.product_id.ToString();
usr=ad.email_username.ToString();
sb.Append(
string.Format(
@"<table class="adtable">
<tr>
<th rowspan="6" width="150px"><img runat="server" src='{6}' /></th>
<th width="50px">Title:
<table><tbody><tr><table><tbody><tr><td>{1}</td></tr></tbody></table></tr></tbody></table>
</th></tr>
<tr>
<th>Id: </th>
<td>{0}</td>
</tr>
<tr>
<th>Price: </th>
<td>{2} Rs</td>
</tr>
<tr>
<th>Type: </th>
<td>{3}</td>
</tr>
<tr>
<th>Description: </th>
<td>{4}</td>
</tr>
<tr>
<th>Posted by: </th>
<td>{5}</td>
</tr>
<tr>
<td colspan="2">{5}</td>
</tr>
</table>
", ad.product_id, ad.title, ad.price, ad.type, ad.description, ad.email_username, ad.imagepath));
if (sb.ToString() != "")
op.Text = sb.ToString();
else
op.Text = "No Results";
viewbutton.Text = "View Ad";
viewbutton.Click += viewbutton_Click;
linkpanel.Controls.Add(op);
linkpanel.Controls.Add(viewbutton);
}
panelop.Controls.Add(linkpanel);
}
protected void viewbutton_Click(object sender, EventArgs e )
{
Response.Redirect("login.aspx");
}
protected void subcatlist_SelectedIndexChanged(object sender, EventArgs e)
{
FillPage1();
if(!IsPostBack)
FillDropDownList1();
}
protected void citylist_SelectedIndexChanged(object sender, EventArgs e)
{
FillPage();
}
}
}
Thanks in advance
解决方案
The "new EventHandler()" would work perfectly.
Also,
you can utilize ComandEventHandler as demonstrated in http://forums.asp.net/t/1286956.aspx?How+to+add+event+handlers+to+dynamic+controls[^]
as well you can refer to CommandEventHandler Delegate in
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.commandeventhandler(v=vs.110).aspx[^]
The lineviewbutton.Click += viewbutton_Click;is not adding the click event handler.
Tryviewbutton.Click += new EventHandler(viewbutton_Click);
try following
http://www.aspdotnet-suresh.com/2012/07/create-controls-dynamically-in-aspnet.html[^]
这篇关于我创建了动态标签,超链接和按钮......但按钮单击不会触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文