[英]control Gridview Based on Selection of more than one Drop down List
我創建了一個名為Ztv.mdf的數據庫,使用[Name],[fullname],[Id],[dept]的表為tabl1,並且還為用戶創建了一個下拉列表list1。 gridview顯示output.it正常。但是我想要Name的下拉列表再多一個。我的目標是當用戶從dropdownlist1和dropdownlist2中選擇值時,它會控制網格視圖。我該怎么辦?
我的1個下拉列表和網格視圖的代碼是:
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlSearchCriteria" runat="server"
DataSourceID="SqlDataSource1" DataTextField="depat" DataValueField="Id"
AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ztvConnectionString %>"
SelectCommand="SELECT [Id], [depat] FROM [Table1]"></asp:SqlDataSource>
<br />
<asp:GridView ID="gvSearchResults" runat="server" AutoGenerateColumns="False"
DataKeyNames="Id" DataSourceID="SqlDataSource2" CellPadding="4"
ForeColor="#333333" GridLines="None" style="margin-left: 155px">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False"
ReadOnly="True" SortExpression="Id" />
<asp:BoundField DataField="fullname" HeaderText="fullname"
SortExpression="fullname" />
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:ztvConnectionString %>"
SelectCommand="SELECT [Name], [fullname], [Id] FROM [Table1] WHERE ([Id] = @Id)">
<SelectParameters>
<asp:ControlParameter ControlID="ddlSearchCriteria" Name="Id"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<br />
<br />
<br />
</div>
</form>
您可以使用存儲過程使用多個下拉列表選擇將數據綁定到網格視圖。將選擇的下拉值作為參數傳遞給存儲過程並獲取結果。 我已經實現了這樣。
public void BindGridList(object sender, EventArgs e)
{
try
{
using (CompMSEntities1 CompObj = new CompMSEntities1())
{
DateTime Start = Convert.ToDateTime(txtStart.Text);
DateTime End = Convert.ToDateTime(txtEnd.Text);
Int32 Department = Convert.ToInt32(ddlDept.SelectedValue);
Int32 Category = Convert.ToInt32(ddlCategory.SelectedValue);
Int32 Priority = Convert.ToInt32(ddlPriority.SelectedValue);
Int32 Status = Convert.ToInt32(ddlStatus.SelectedValue);
GridViewComplaintReport.DataSource = CompObj.SP_ManageComplaint_Summary(Start, End, Department, Category, Priority, Status);
SP_ManageComplaint_Summary_Result obj = new SP_ManageComplaint_Summary_Result();
GridViewComplaintReport.DataBind();
GridViewComplaintReport.Visible = true;
ExportTable.Visible = true;
TableGrid.Visible = true;
}
}
catch (Exception ex)
{
lblException.Text = "Problem in data retrive from database .";
lblException.Visible = true;
ErrorHandler.WriteError(ex.ToString());
}
存儲過程的代碼-
CREATE PROCEDURE dbo.SP_ManageComplaint_Summary
@StartDate datetime,
@EndDate datetime,
@DepartmentID INT,
@CategoryID INT,
@PriorityID INT ,
@StatusID INT
AS
BEGIN
SELECT d1.DepartmentName,c1.CategoryName,s1.StatusType,
p1.PriorityType,c.Title, c.[Description], c.Created,c.DueDate,
u1.Email, u1.UserID, c.QMRClosedDate
FROM Complaint c
Inner JOIN Department d1 ON c.DepartmentID = d1.DepartmentID
Inner JOIN Category c1 ON c.CategoryID = c1.CategoryID
Inner JOIN Priority p1 on c.PriorityID = p1.PriorityID
Inner JOIN UserInfo u1 on c.UserID = u1.UserID
Inner JOIN [Status] s1 on c.StatusID = s1.StatusID
WHERE
c.Created BETWEEN @StartDate AND @EndDate+1 AND
d1.DepartmentID = Case when @DepartmentID = -1 then d1.DepartmentID else @DepartmentID end AND
c1.CategoryID = Case when @CategoryID = -1 then c1.CategoryID else @CategoryID end AND
p1.PriorityID = Case when @PriorityID = -1 then p1.PriorityID else @PriorityID end AND
s1.StatusID =Case When @StatusID = -1 then s1.StatusID else @StatusID end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.