C# 如何包括';全部';asp.net中的搜索选项?
我正在尝试为我的aspx页面设置C# 如何包括';全部';asp.net中的搜索选项?,c#,asp.net,search,stored-procedures,C#,Asp.net,Search,Stored Procedures,我正在尝试为我的aspx页面设置ALL搜索功能。问题是我不知道如何正确地做这件事。这是我能做的,下面是代码: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { DataTable dtTransactionCategory = clsTransactionCategory.GetTransactionCategory(Helper.LogID, Helper
ALL
搜索功能。问题是我不知道如何正确地做这件事。这是我能做的,下面是代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataTable dtTransactionCategory = clsTransactionCategory.GetTransactionCategory(Helper.LogID, Helper.OrgID, Helper.SiteID, 0, string.Empty);
ddlTransactionCategoryDesc.DataSource = dtTransactionCategory;
ddlTransactionCategoryDesc.DataTextField = "TransactionCategoryDesc";
ddlTransactionCategoryDesc.DataValueField = "TransactionCategoryID";
ddlTransactionCategoryDesc.DataBind();
ddlTransactionCategoryDesc.Items.Insert(0, new ListItem("All"));
ddlTransactionCategoryInput.DataSource = dtTransactionCategory;
ddlTransactionCategoryInput.DataTextField = "TransactionCategoryDesc";
ddlTransactionCategoryInput.DataValueField = "TransactionCategoryID";
ddlTransactionCategoryInput.DataBind();
logID = CommonFunctions.StringToInt(Session[Constants.SessionLogID].ToString());
orgID = 1;
siteID = 1;
ddlTransactionCategoryDesc.SelectedValue = Convert.ToString(ddlTransactionCategoryDesc);
txtTransactionDesc.Text = string.Empty;
BindData();
}
}
以及存储过程(如果需要):
ALTER PROC [dbo].[spMSTransaction_Get]
@OrgID INT,
@SiteID INT,
@TransactionCategoryID INT,
@TransactionCategoryDesc varchar (300),
@TransactionDesc varchar(300)
AS
SET NOCOUNT ON
SELECT mst.[OrgID],
mst.[SiteID],
mst.[TransactionID],
mst.[TransactionCategoryID],
mstc.[TransactionCategoryDesc],
mst.[TransactionDesc],
mst.[IsActive],
[master].dbo.fnConvertUTCToLocalTimeZone (mst.[CreatedDate]) as [CreatedDate],
mst.[CreatedBy],
[master].dbo.fnConvertUTCToLocalTimeZone (mst.[ModifiedDate]) as [ModifiedDate],
mst.[ModifiedBy]
FROM [dbo].[MSTransaction] AS mst
INNER JOIN [dbo].[MSTransactionCategory] AS mstc
ON mst.OrgID = mstc.OrgID AND mst.SiteID = mstc.SiteID AND mst.TransactionCategoryID = mstc.TransactionCategoryID
WHERE (mst.[OrgID] = @OrgID OR @OrgID = 0)
AND (mst.[SiteID] = @SiteID OR @SiteID = 0)
AND (mst.[TransactionCategoryID] = @TransactionCategoryID OR @TransactionCategoryID = 0)
AND (mst.[TransactionDesc] LIKE '%' + @TransactionDesc + '%')
AND (mst.[isActive] = 1)
我已经放置了ddlTransactionCategoryDesc.Items.Insert(0,新列表项(“全部”)代码>但它返回了一个错误:
输入字符串的格式不正确
你知道我需要修复什么,以及我应该做什么来实现ALL
搜索功能吗?谢谢。根据您的存储过程,@TransactionCategoryID
是一个INT
。添加ALL
列表需要您使用以下选项:
ddlTransactionCategoryDesc.Items.Insert(0, new ListItem("All", "0"));
这将使ALL
的值成为INT
。您当前拥有的-ListItem(“全部”)
会自动将值的类型更改为字符串。执行后检查下拉列表,它会将值显示为All
,但无法将其传递到存储过程所需的INT
。我尝试了您的解决方案,但它抛出了一个错误:“无法从'INT'转换为'string'”任何想法?请使用ListItem(“全部”,“0”)。我错误地忘记将值转换为字符串,这是ListItem的一个要求。我也会编辑答案。