【问题标题】:Detailsview doesn't show textboxes when there is no data没有数据时,Detailsview 不显示文本框
【发布时间】:2012-12-20 14:26:23
【问题描述】:

我使用 DetailsView 仅用于插入数据,用于选择、更新和删除我使用 Gridview。因此,当表中没有数据时,我看不到插入新数据的文本框,如何解决这个问题?任何帮助表示赞赏!

详情查看代码

 <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" DefaultMode="Insert" OnItemInserted= "Inserted" 
              AutoGenerateInsertButton="True" CellPadding="4" DataKeyNames="Name, Software, License Number" AutoGenerateRows="true" 
              DataSourceID="AccessDataSource1" ForeColor="#333333" 
        GridLines="None">
              <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
              <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
              <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
              <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
              <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
              <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
              <EditRowStyle BackColor="#999999" />
              <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
          </asp:DetailsView>
</asp:Panel>


<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
        DataFile="~/App_Data/Test.mdb"
         SelectCommand="SELECT * FROM [Softwares]"               
         InsertCommand = "INSERT INTO Softwares ([Name],[Softwares],[License Number],[Software Version],[Expiration Date],[Notes]) 
         VALUES ([WhichName],[WhichSoft],[WhichLice],[WhichSoftVer],[WhichExp],[WhichNotes])"           
        UpdateCommand="UPDATE [Softwares] SET [Software Version] = ?,
           [Expiration Date] = ?,[Notes] = ? WHERE [Name]=? AND [Softwares] = ? AND [License Number] = ? "                
            DeleteCommand = "DELETE FROM [Softwares] WHERE [Name]=? AND  [Softwares] = ? AND [License Number] = ?" >          

            <InsertParameters>
                   <asp:Parameter Name="Name" Type="String" />
                    <asp:Parameter Name="Softwares" Type="String" />
                     <asp:Parameter Name="License Number" Type="String" />
                      <asp:Parameter Name="Software Version" Type="String" />
                       <asp:Parameter Name="Expiration Date" Type="String" />
                       <asp:Parameter Name="Notes" Type="String" />
            </InsertParameters>

            <UpdateParameters>   
                    <asp:Parameter  Name="Software Version"  Type="String"/>
                    <asp:Parameter  Name="Expiration Date"  Type="String"/>
                    <asp:Parameter  Name="Notes"  Type="String"/>
                    <asp:Parameter  Name="Name" Type="String" />
                    <asp:Parameter  Name="Softwares"  Type="String"/>
                    <asp:Parameter  Name="License Number"  Type="String"/>                                                               
                </UpdateParameters>

            <DeleteParameters>
                    <asp:Parameter  Name="Name" Type="String" />
                    <asp:Parameter  Name="Softwares"  Type="String"/>
                    <asp:Parameter  Name="License Number"  Type="String"/> 
                </DeleteParameters>                     
    </asp:AccessDataSource>

【问题讨论】:

  • 您是否尝试过一一选择字段而不是选择 * ?我还发现最好在数据网格上使用代码而不是向导。
  • 我试过了,但没有任何区别。

标签: asp.net ms-access detailsview


【解决方案1】:

这是一个很好的教程。按照本教程,您应该能够获得所需的一切。

http://www.asp.net/web-forms/tutorials/data-access/custom-formatting/using-templatefields-in-the-detailsview-control-cs

【讨论】:

  • 我在找DetailsView,教程是关于Gridview的。
  • 我是个傻瓜。抱歉,我在考虑网格。
  • 我找到了这个link的解决方案!基本上,当 AutoGenerateRows 设置为 True 时,字段不会被存储,所以我需要明确声明行字段并解决问题。感谢您的帮助,我将其标记为答案,因为您指向模板字段,但我也将此链接添加到答案中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多