我创建了动态标签,超链接和按钮......但按钮单击不会触发 [英] i created dynamic label, hyperlink and a button...but button click is not firing

查看:68
本文介绍了我创建了动态标签,超链接和按钮......但按钮单击不会触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 使用系统; 
使用 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 line

viewbutton.Click += viewbutton_Click;

is not adding the click event handler.
Try

viewbutton.Click += new EventHandler(viewbutton_Click);


try following

http://www.aspdotnet-suresh.com/2012/07/create-controls-dynamically-in-aspnet.html[^]


这篇关于我创建了动态标签,超链接和按钮......但按钮单击不会触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆