急!急!急!急!急!急!请教CSDN上的高手关于用户控件的自定义事件问题!

Alldim 2005-08-07 10:32:20
现有A.aspx页面和B.ascx用户控件,
B.ascx用户控件中有一DropDownList控件和TextBox控件以及Button按钮,

DropDownList控件的数据绑定事件为:
private DataBindProductList()
{

object []objPara={null,Language};
this.ddl_ProductType.DataSource=CSD.Pubilc_Class.CSD.Run_Proc_DR("P_CSD_ProductList",objPara);
this.ddl_ProductType.DataTextField="Product_Name";
this.ddl_ProductType.DataValueField="Product_key";
this.ddl_ProductType.DataBind();
this.ddl_ProductType.Items.Insert(0,new ListItem(LocRM.GetString("Default_Please_Select"),""));
LocRM.ReleaseAllResources();

}

Button控件的数据绑定事件为:
private void bt_Search_Click(object sender, System.EventArgs e)
{
szProduct_Detail_Url=this.ddl_ProductType.SelectedValue.ToString().Trim();szProductModel=this.tb_Model.Text.ToString().Trim().Replace("'","''");
}
在A.aspx中引用B.ascx控件,现在我想请问高手为何在A.aspx页面中单击按钮时,bt_Search_Click事件中的szProduct_Detail_Url为什么获取不了值,请问有什么解决办法?
...全文
167 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
太长了。如果总也找不出原因,贴出来hiqian你最好尽量简化你的程序,能说明问题就行了。

通常你应该跟踪PageLoad之后的每一行,直到进入要处理事件,跟踪的时候再变量监视窗口中随时观察DropdownList是什么时候被绑定数据的,每一步它的 SelectedValue和SelectedIndex都是什么值。
ieooo 2005-08-08
  • 打赏
  • 举报
回复
检查一下你的数据库的“Product_Key”有没有数据;
使用VS的单步调试查找出入到CustomValidate方法两个参数的值状态。
ieooo 2005-08-08
  • 打赏
  • 举报
回复
你CustomValidate(string szProduct_Detail_Url,string szProductModel)
方法中有"this.Response.End();"
当然以后的代码是不会执行的.
你去掉这段代码.
Alldim 2005-08-08
  • 打赏
  • 举报
回复
哪位高手指点一下啊?本人很急啊!!!
Alldim 2005-08-08
  • 打赏
  • 举报
回复
this.Response.Write(szProduct_Detail_Url+szProductModel);
this.Response.End();
这是我为了看看有没有值用的,结果只有szProductModel有值。
Alldim 2005-08-07
  • 打赏
  • 举报
回复
这是.cs代码,不知道哪里有错,请高手指点.谢谢!!
namespace CSD
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Reflection;
using System.Resources;
using System.Threading;
using DataReader =System.Data.SqlClient.SqlDataReader;

//定义代理
public delegate void QuickSearchClickHandler(object sender,QuickSearchEventArgs e);

/// <summary>
/// ProductQuickSearch 的摘要说明。
/// </summary>
public class ProductQuickSearch : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.DropDownList ddl_ProductType;
protected System.Web.UI.WebControls.TextBox tb_Model;
protected System.Web.UI.WebControls.Button bt_Search;
protected System.Web.UI.WebControls.Label lb_QuickSearch;
protected System.Resources.ResourceManager LocRM;
public static string Language;
private string szProduct_ID;
public event QuickSearchClickHandler QuickSearchClick;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Language=Global.ReadLanguage(this.Request);
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(Language);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
LocRM = new ResourceManager("CSD.Res_Files.Front.message",Assembly.GetExecutingAssembly());
this.lb_QuickSearch.Text=LocRM.GetString("Default_QuickSearch");
LocRM.ReleaseAllResources();
//DataBindProductList();
OnQuickSearchClick(this,new QuickSearchEventArgs(DataBindProductList()));
}

private void OnQuickSearchClick(object sender,QuickSearchEventArgs e)
{
if(QuickSearchClick!=null)
QuickSearchClick(this,e);
}

private bool DataBindProductList()
{
object []objPara={null,Language};
this.ddl_ProductType.DataSource=CSD.Pubilc_Class.CSD.Run_Proc_DR("P_CSD_ProductList",objPara);
this.ddl_ProductType.DataTextField="Product_Name";
this.ddl_ProductType.DataValueField="Product_Key";
this.ddl_ProductType.DataBind();
this.ddl_ProductType.Items.Insert(0,new ListItem(LocRM.GetString("Default_Please_Select"),""));
LocRM.ReleaseAllResources();
return true;
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.bt_Search.Click += new System.EventHandler(this.bt_Search_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void bt_Search_Click(object sender, System.EventArgs e)
{
OnQuickSearchClick(this,new QuickSearchEventArgs(CustomValidate(this.ddl_ProductType.SelectedValue.ToString().Trim(),this.tb_Model.Text.ToString().Trim().Replace("'","''"))));
}
private bool CustomValidate(string szProduct_Detail_Url,string szProductModel)
{
this.Response.Write(szProduct_Detail_Url+szProductModel);
this.Response.End();
object []obj={null,szProductModel,Language};
DataReader dr=CSD.Pubilc_Class.CSD.Run_Proc_DR("Front_Search_GetProductID",obj);
if(dr.Read())
{
szProduct_ID=dr["Product_ID"].ToString();
}
dr.Close();
if(szProduct_ID==null)
{
this.Response.Write("<script>alert('Sorry!Not Found!')</script>");
}
else
{
this.Response.Redirect("Product\\"+szProduct_Detail_Url+"?id="+szProduct_ID);
}
return true;
}
}
public class QuickSearchEventArgs : EventArgs
{
private bool result;

public QuickSearchEventArgs(bool result):base()
{
this.result = result;
}
public bool Result
{
get{return this.result;}
}
}
}
Alldim 2005-08-07
  • 打赏
  • 举报
回复
这是我的用户控件的页面代码
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="ProductQuickSearch.ascx.cs" Inherits="CSD.ProductQuickSearch" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<table cellSpacing="0" cellPadding="0" width="140" border="0">
<tr>
<td bgColor="#e9e0cf" height="25"> 
<asp:label id="lb_QuickSearch" runat="server" Font-Bold="True" CssClass="title13px"></asp:label></td>
</tr>
<tr>
<td>
<table cellSpacing="1" cellPadding="2" width="100%" bgColor="#f0eade" border="0">
<tr>
<td align="center" bgColor="#eaeaea" height="30">
<table cellSpacing="1" cellPadding="2" width="100%" border="0">
<tr>
<td style="HEIGHT: 6px"><asp:dropdownlist id="ddl_ProductType" runat="server" Width="120px" CssClass="dropdownlist"></asp:dropdownlist></td>
</tr>
<tr>
<td><asp:textbox id="tb_Model" runat="server" Width="80px" CssClass="inputsearch"></asp:textbox> 
<asp:button id="bt_Search" runat="server" Text="GO" CssClass="ButtonRed"></asp:button></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧