2014-10-13 2 views
0

인벤토리 재료 그룹이있는 드롭 다운 목록이 있으며 다른 그룹을 선택하면 그리드보기가 재료를로드하는 방식이 필요합니다. 그 그룹을 위해. 나는 ...GridView 채우기 선택한 DropDownList 기반 값 (vb.net)

ASPX

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$   ConnectionStrings:Design_Construction_V2ConnectionString %>"  ProviderName="<%$ ConnectionStrings:Design_Construction_V2ConnectionString.ProviderName %>" SelectCommand="SELECT [UnitPriceInfo], [groupNumber], [itemDescription], [CrossTieType], [AFEFunctionCode], [AFECode], [unitType], [unitPrice] FROM [itemsList_]" FilterExpression="groupNumber = {0}"> 
    <FilterParameters> 
     <asp:ControlParameter Name="groupNumber" ControlID="ddlMaterials" PropertyName="SelectedValue" Type="Int32" DefaultValue="" /> 
    </FilterParameters> 
</asp:SqlDataSource> 
<asp:DropDownList runat="server" ID="ddlMaterials"></asp:DropDownList> 
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EmptyDataText="There are no data records to display."> 
    <Columns> 
     <asp:BoundField DataField="UnitPriceInfo" HeaderText="UnitPriceInfo" SortExpression="UnitPriceInfo" /> 
     <asp:BoundField DataField="groupNumber" HeaderText="groupNumber" SortExpression="groupNumber" /> 
     <asp:BoundField DataField="itemDescription" HeaderText="itemDescription" SortExpression="itemDescription" /> 
     <asp:BoundField DataField="CrossTieType" HeaderText="CrossTieType" SortExpression="CrossTieType" /> 
     <asp:BoundField DataField="AFEFunctionCode" HeaderText="AFEFunctionCode" SortExpression="AFEFunctionCode" /> 
     <asp:BoundField DataField="AFECode" HeaderText="AFECode" SortExpression="AFECode" /> 
     <asp:BoundField DataField="unitType" HeaderText="unitType" SortExpression="unitType" /> 
     <asp:BoundField DataField="unitPrice" HeaderText="unitPrice" SortExpression="unitPrice" /> 
    </Columns> 
</asp:GridView> 

코드 숨김 SelectParameters

Private Sub ddlMaterials_Load(sender As Object, e As EventArgs) Handles ddlMaterials.Load 
    If Not IsPostBack Then 
     Dim db As New DesignConstructionDataContext 

     Dim materials = (From m In db.Estimate_Groups 
        Where (m.BigGroup = "Materials") 
        Select m.groupName) 

     ddlMaterials.DataSource = materials 
     ddlMaterials.DataBind() 
    End If 
End Sub 

Private Sub ddlMaterials_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlMaterials.SelectedIndexChanged 

End Sub 

답변

0

변경 FilterParameters이 작업을 수행하는 방법에 대한 약간의 혼란 스러워요. where 절에서 this를 사용하십시오 - where groupNumber = @groupNumber. 따라서 aspx는 다음과 같이 변경됩니다.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$   ConnectionStrings:Design_Construction_V2ConnectionString %>"  ProviderName="<%$ ConnectionStrings:Design_Construction_V2ConnectionString.ProviderName %>" SelectCommand="SELECT [UnitPriceInfo], [groupNumber], [itemDescription], [CrossTieType], [AFEFunctionCode], [AFECode], [unitType], [unitPrice] FROM [itemsList_] where groupNumber = @groupNumber"> 
<SelectParameters> 
<asp:ControlParameter Name="groupNumber" ControlID="ddlMaterials" PropertyName="SelectedValue" Type="Int32" DefaultValue="" /> 
</SelectParameters> 
</asp:SqlDataSource> 
관련 문제