我正在尝试从下拉列表中过滤项目。我在XML表中编写了一个select SQL语句。以下是各自的代码。我的过滤器名称为TreatmentGroup
。
带有select语句代码的XML表:
<predefined>
<DetailFilters>
<FilterInfo Name="CompanyID" DataType="xs:string" Kind="Session"/>
<FilterInfo Name="BranchID" DataType="xs:string" Kind="Session"/>
<FilterInfo Name="DepartmentID" DataType="xs:string" Kind="Session"/>
<FilterInfo Name="MedicalSchemeID" DataType="xs:string" Kind="Form"/>
<FilterInfo Name="TreatmentGroup" DataType="xs:string" Kind="Form"/>
</DetailFilters>
<DetailSelectStatement xsi:type="QLiteralExpr">
SELECT
TreatmentItems.TreatmentGroup As TreatmentGroup,
MedicalSchemeDetail.*
FROM
MedicalSchemeDetail JOIN TreatmentItems ON
MedicalSchemeDetail.CompanyID = TreatmentItems.CompanyID AND
MedicalSchemeDetail.BranchID = TreatmentItems.BranchID AND
MedicalSchemeDetail.DepartmentID = TreatmentItems.DepartmentID AND
MedicalSchemeDetail.ItemID = TreatmentItems.TreatmentID
WHERE
TreatmentGroup=@TreatmentGroup
AND MedicalSchemeDetail.CompanyID = @CompanyID
AND MedicalSchemeDetail.BranchID = @BranchID
AND MedicalSchemeDetail.DepartmentID = @DepartmentID
AND MedicalSchemeDetail.MedicalSchemeID = @MedicalSchemeID
AND IsNull(MedicalSchemeDetail.Excluded,0) = 0
</DetailSelectStatement>
<predefined>
这是带有下拉列表的aspx代码:
<asp:Label runat="server" ID="label" SkinID="groupCaptionSkin" ForeColor="Navy" Font-Names="Tahoma" Font-Size="Small" Text="TreatmentGroup" />
<asp:DropDownList ID="ddlItemGroup" OnSelectedIndexChanged= "ddlPeriodStamp_SelectedIndexChanged" runat ="server" AutoPostBack = "True">
<asp:ListItem Value="" Enabled="false"></asp:ListItem>
<asp:ListItem Value="ALL">ALL</asp:ListItem>
<asp:ListItem Value="Lab Test"> Lab Test</asp:ListItem>
<asp:ListItem Value="RADIOLOGY TEST">RADIOLOGY</asp:ListItem>
<asp:ListItem Value="NURSING">NURSING</asp:ListItem>
<asp:ListItem Value="Prescription">Prescription</asp:ListItem>
<asp:ListItem Value="VACCINES">VACCINES</asp:ListItem>
</asp:DropDownList>
</asp:Label>
这是过滤器背后的代码:
protected void ddlPeriodStamp_SelectedIndexChanged(object sender, System.EventArgs e)
{
DropDownList ddlItemGroup = (DropDownList)sender;
if (ddlItemGroup.SelectedValue != null)
ApplyGridFilter();
}
protected void ApplyGridFilter()
{
DBDataSource1.State.BusinessObject.DataPump.FormFilters.Clear();
DBDataSource1.State.BusinessObject.DataPump.FormFilters.Add("TreatmentGroup", TreatmentGroup);
DBDataSource1.State.BusinessObject.Fill(null);
MedicalSchemeDetailGrid.DataBind();
}
答案 0 :(得分:0)
在用户选择列表中的项目之后,您的函数ApplyGridFilter
被称为。
如果您想在DropDownList
的{{1}}中对要显示的列表应用过滤器,建议您绑定代码中的PageLoad
。