重新构建gridview的动态数据源

时间:2016-06-23 20:51:42

标签: c# asp.net gridview

我很高兴看到有人正在做我想用sqldatasource做什么,所以我根据我的目的调整了它,但是我可以毫无错误地运行它我也没有数据在文本中输入或不输入数据框。

这是一个启发我的线程的链接 Reference link for what I used: 您会注意到巴黎的答案是我已经改编的:enter image description here

我已经尝试了两种技术说明了相同的结果,所以我真的很困惑。 这是我的aspx代码:

     <asp:SqlDataSource ID="InventoryList" runat="server" ConnectionString='<%$ ConnectionStrings:CMDB_testConnectionString %>' SelectCommand="SELECT [AssetID], [AssetType], [AssetName], [AssetShortDesc], [AssetLongDesc], [AssetAddNotes], [AssetManuf], [AssetModel], [AssetTag], [AssetSerialNum], [AssetAcqDate], [AssetDTAssetID], [AssetLocGrp], [AssetLoc1], [AssetLoc2], [AssetLoc3], [AssetParent], [AssetStatus], [AssetPropType], [AssetPrimUser], [AssetEntered], [AssetEnteredBy], [AssetOwner], [AssetCompany], [AssetPriIPAddr], [AssetPriMACAddr], [AssetPriOS], [AssetPriOSSP], [AssetNotes], [AssetAdminGrp], [AssetOrgID], [AssetOperType], [AssetOperStatus] FROM [cmdb_assets] 
     WHERE [AssetName] = CASE @AssetName THEN [AssetName] END AND [AssetType] = CASE @AssetType THEN [AssetType] END AND [AssetManuf] = CASE @AssetManuf THEN [AssetManuf END AND  [AssetModel] = CASE @AssetModel THEN [AssetModel] END">

其次是:

        <SelectParameters>
        <asp:ControlParameter Name="AssetName" ControlID="AssetNameTbx" Type="String" />
       <asp:ControlParameter Name="AssetType" ControlID="AssetTypeTbx" Type="String" />
       <asp:ControlParameter Name="AssetManuf" ControlID="AssetManufTbx" Type="String" />
       <asp:ControlParameter Name="AssetModel" ControlID="AssetModelTbx" Type="String" />
    </SelectParameters> 
    </asp:SqlDataSource>

当第一个线程响应者正在拍摄时,我想要做的是允许在一个或多个文本框中输入信息,然后通过此选择将结果过滤到我的gridview。 思考? 肯...

以为我会提供上面我使用的两个示例的结果的输出,以及我刚刚尝试过的另一个论坛成员在2014年测试的最新结果的输出,它也执行相同的nodata返回结果。只是为了观察结果。真的没有价值,但仍然。 肯... enter image description here 数据源最终结果如下:

  <asp:SqlDataSource ID="InventoryList" runat="server" ConnectionString='<%$ ConnectionStrings:CMDB_testConnectionString %>' SelectCommand="SELECT [AssetID], [AssetType], [AssetName], [AssetShortDesc], [AssetLongDesc], [AssetAddNotes], [AssetManuf], [AssetModel], [AssetTag], [AssetSerialNum], [AssetAcqDate], [AssetDTAssetID], [AssetLocGrp], [AssetLoc1], [AssetLoc2], [AssetLoc3], [AssetParent], [AssetStatus], [AssetPropType], [AssetPrimUser], [AssetEntered], [AssetEnteredBy], [AssetOwner], [AssetCompany], [AssetPriIPAddr], [AssetPriMACAddr], [AssetPriOS], [AssetPriOSSP], [AssetNotes], [AssetAdminGrp], [AssetOrgID], [AssetOperType], [AssetOperStatus] FROM [cmdbv_Assets_CInTrac] where AssetID=isnull(@AssetID,AssetID) and AssetName=isnull(@AssetName,AssetName) and AssetType=isnull(@AssetType,AssetType) and AssetManuf=isnull(@AssetManuf,AssetManuf) and AssetModel=isnull(@AssetModel,AssetModel) and AssetTag=isnull(@AssetTag,AssetTag) and AssetSerialNum=isnull(@AssetSerialNum,AssetSerialNum) and AssetDTAssetID=isnull(@AssetDTAssetID,AssetDTAssetID) and AssetLocGrp=isnull(@AssetLocGrp,AssetLocGrp) and AssetLongDesc=isnull(@AssetLongDesc,AssetLongDesc) and AssetOrgID=isnull(@AssetOrgID,AssetOrgID) and AssetPriIPAddr=isnull(@AssetPriIPAddr,AssetPriIPAddr) and AssetStatus=isnull(@AssetStatus,AssetStatus)" CancelSelectOnNullParameter="false">

1 个答案:

答案 0 :(得分:0)

如果我理解你所追求的东西,这似乎有效。使用Adventureworks 2014(sql server)进行测试。

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AdventureWorks2014ConnectionString %>"
        SelectCommand="SELECT [Name], [ProductID], [Color], [Size], [ProductNumber], [Style] FROM Production.[Product]
        where name=isnull(@ProductName,name) and Color=isnull(@Color,Color) and ProductNumber=isnull(@ProductNumber,ProductNumber)" CancelSelectOnNullParameter="false">
        <SelectParameters>
            <asp:ControlParameter Name="ProductName" ControlID="ProductName" Type="String" ConvertEmptyStringToNull="true" />
            <asp:ControlParameter Name="Color" ControlID="Color" Type="String" ConvertEmptyStringToNull="true" />
            <asp:ControlParameter Name="ProductNumber" ControlID="ProductNumber" Type="String" ConvertEmptyStringToNull="true" />
        </SelectParameters>
    </asp:SqlDataSource>
    <form id="form1" runat="server">
        <div>
            Product Name:
            <asp:TextBox ID="ProductName" runat="server"></asp:TextBox>
        </div>
        <div>
            Color:
            <asp:TextBox ID="Color" runat="server"></asp:TextBox>
        </div>
        <div>
            Product Number:
            <asp:TextBox ID="ProductNumber" runat="server"></asp:TextBox>
        </div>
        <div><asp:Button ID="submit" runat="server" Text="filter" /></div>
        <div>
            <asp:GridView runat="server" DataSourceID="SqlDataSource1"></asp:GridView>
        </div>
    </form>
</body>
</html>