- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ASP.NET GridView ,它有几个关联的详细信息 View 和一个辅助 GridView 。当用户单击 gridview 中的一行时,detailsviews 会在 gridview 的右侧弹出。这很好,但是随着 gridview 行数的增加,详细信息 View 在页面上被推得越来越低,使用户很难找到它们,并且令人沮丧。
我想做的是当用户选择他们感兴趣的行时,将详细信息 View 的顶部与所选行对齐。
我试过设置 CSS:
[id$="ContentPlaceHolder1_dvProductionReport"],
[id$="ContentPlaceHolder1_dvOraclePartDetails"],
[id$="ContentPlaceHolder1_gvReceipts"]
{
position: fixed;
}
这没有用。我还尝试使用 this example 通过 JavaScript 定位它(在此示例中仅使用第一个选择器) :
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript">
$().ready(function () {
//var $scrollingDiv = [id$ = "ContentPlaceHolder1_dvProductionReport"];
var elements = document.querySelector('[id$="ContentPlaceHolder1_dvProductionReport"]');
console.log(elements);
$(window).scroll(function () {
elements
.stop()
.animate({ "marginTop": ($(window).scrollTop() + 30) + "px" }, "slow");
});
});
</script>
但这在 Chrome 中不起作用,因为显然“animate”是 Chrome 中的关键字,但是 example适用于 Firefox。
问题:
我如何在用户滚动时保持细节 View 在 View 中,或者至少弹出与他们选择的 GridView 中的行对齐的细节 View ?
编辑:回应@rexroxm 的建议:我已经添加: <div style="position: absolute"><td>...</td></div>
围绕第一个细节 View 。这没有任何区别,所以我将其添加到 .CSS 文件中:
[id$="ContentPlaceHolder1_dvProductionReport"],
[id$="ContentPlaceHolder1_dvOraclePartDetails"],
[id$="ContentPlaceHolder1_gvReceipts"]
{
position: absolute;
}
我可以看到 position: absolute;
的 CSS显示在所有三个相关的详细信息 View (2) 和 GridView (1) 上。如果我在 Chrome > Inspect > Developer tools 中检查样式,我会看到 position: absolute;
在第一个 View 中显示了所有三个,但在第二个 View 中显示了它(不确定这些被称为什么,但它们会向您显示您选择的元素的 CSS 样式)。我也试过使用:
[id$="ContentPlaceHolder1_dvProductionReport"],
[id$="ContentPlaceHolder1_dvOraclePartDetails"],
[id$="ContentPlaceHolder1_gvReceipts"]
{
position: absolute !important;
}
这也显示为划线。
这是整个 <td>...</td>
,很抱歉,它很长,但它可能会有所帮助:
<td>
<div style="position: absolute">
<asp:DetailsView ID="dvProductionReport" runat="server" Height="50px"
Width="125px"
EnableModelValidation="True" AutoGenerateRows="False"
DataKeyNames="PartNumber" Caption="Part Details" >
<AlternatingRowStyle BackColor="#66FF66" ForeColor="Black" />
<Fields>
<asp:BoundField DataField="PartNumber" HeaderText="Part Number:"
SortExpression="PartNumber" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle"
Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="AssemblyPartNumber"
HeaderText="Assembly Part Number:" SortExpression="AssemblyPartNumber" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle"
Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:TemplateField HeaderText="Line Down:" SortExpression="LineDown">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Convert.ToBoolean(Eval("LineDown")) %>' />
</EditItemTemplate>
<InsertItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Convert.ToBoolean(Eval("LineDown")) %>' />
</InsertItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Convert.ToBoolean(Eval("LineDown")) %>'
Enabled="false" />
</ItemTemplate>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:TemplateField>
<asp:BoundField DataField="Product" HeaderText="Product:"
SortExpression="Product" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="Assembly" HeaderText="Assembly:"
SortExpression="Assembly" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="OrderNumber" HeaderText="Order Number:"
SortExpression="OrderNumber" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="Department" HeaderText="Department:"
SortExpression="Department" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="DateAdded" HeaderText="Date Added:"
SortExpression="DateAdded" DataFormatString="{0:d}" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="DateRequired" HeaderText="Date Required:"
SortExpression="DateRequired" DataFormatString="{0:d}" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="QuantityRequired" HeaderText="Quantity Required:"
SortExpression="QuantityRequired" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:TemplateField HeaderText="Filled:" SortExpression="Filled">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Convert.ToBoolean(Eval("Filled")) %>' />
</EditItemTemplate>
<InsertItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Convert.ToBoolean(Eval("Filled")) %>' />
</InsertItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Convert.ToBoolean(Eval("Filled")) %>'
Enabled="false" />
</ItemTemplate>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Closed:" SortExpression="Closed">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" Checked='<%# Convert.ToBoolean(Eval("Closed")) %>' />
</EditItemTemplate>
<InsertItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" Checked='<%# Convert.ToBoolean(Eval("Closed")) %>' />
</InsertItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" Checked='<%# Convert.ToBoolean(Eval("Closed")) %>'
Enabled="false" />
</ItemTemplate>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:TemplateField>
<asp:BoundField DataField="ProductionCell" HeaderText="Production Cell:"
SortExpression="ProductionCell" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="ProductionReason" HeaderText="Production Reason:"
SortExpression="ProductionReason" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="True" />
</asp:BoundField>
<asp:BoundField DataField="ProductionComments"
HeaderText="Production Comments:" SortExpression="ProductionComments" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="True" />
</asp:BoundField>
<asp:BoundField DataField="ReportingAssociate"
HeaderText="Reporting Associate:" SortExpression="ReportingAssociate" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:HyperLinkField DataTextField="EmailAddress" HeaderText="Email Address:"
SortExpression="EmailAddress" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:HyperLinkField>
<asp:BoundField DataField="RootCause" HeaderText="Root Cause:"
SortExpression="RootCause" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="BuyerComments" HeaderText="Buyer Comments:"
SortExpression="BuyerComments" >
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="True" />
</asp:BoundField>
</Fields>
</asp:DetailsView>
</div>
</td>
最佳答案
您可以保留 detailsview 的 position:absolute
这样它将保留在您的页面/ View 中。当有人在主 gridview 中单击用户时,您可能会将其数据绑定(bind)到辅助 gridview,然后显示它。在容器 div/table
的 style
中将其 position
设置为 absolute
将使它保持在 View 中。您还可以在包含辅助 Gridview 的 div 的右上角放置一个十字按钮,它使用事件 onclick
设置 display:none
。
关于javascript - 在选定的 gridview 行旁边自动滚动 detailsview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947581/
我整个下午都在尝试使用 CODE BEHIND 来完成此操作,但没有成功,所以我要求提供一些 C# 代码。 基本上,我在主/从关系中有一个 GV 和一个 DV。 GV 显示 ID 和名称。如果我在 G
我似乎无法让我的详细信息 View 进入编辑模式。我以编程方式绑定(bind)数据源。当项目命令是“编辑”时,我将模式更改为“编辑”并重新绑定(bind)数据源。我检查了控件数据绑定(bind)后,它
当用户转到指定页面时,我将 DetailsView 附加到 SqlDataSource 并且已经设置为插入模式。我实际上是将它用作某些事件的注册页面。我不想让用户输入他们的“用户名”,而是希望该字段根
我已将 DropDownList 控件添加到 DetailsView,并试图让它绑定(bind)到我的更新/插入方法的“状态”参数。 '> New York .... 我已经用 50 个状态填充
默认情况下,DetailsView 支持 2 列。我想添加第三列。使用DetailsView 可以实现这一点吗?在每个字段中创建一个表格并不能达到我想要的效果,因为第三列无法正确对齐。 我知道我可以使
我有一个处于插入模式的 DetailsView: 当然,插入/取消按钮的样式相同。 是否可以将这两个分别设置为一个蓝色和一个黄色? 在 FormView 中,您可以像这样单独定义按钮: Deta
我是 .NET 4 网络开发的新手,我正试图弄清楚它应该如何工作。在我的页面上,我有一个下拉列表、一个文本框、一个搜索按钮和一个由实体数据源连接的详细信息 View 。实体源和详细信息 View 设置
注意:我已经更新了这个问题的代码,使示例更清晰一些,并利用了下面 Karl Anderson 提供的示例代码。我也愿意接受其他方法来完成我需要完成的工作。 我正在创建一个表单,其中包含多个复选框,每个
我正在尝试从 DetailsView 控件中检索数据,以便将它们输入到另一个数据库表中。我查看了其他人提出的其他问题,但他们的问题都不适合我的情况,即试图访问 SQL 数据库。最终,我找不到我需要的答
MSDN DetailsView.EnableModelValidation 的文档非常简短: Gets or sets a value that indicates whether data-mod
我在页面上有一个 asp.net detailsview 控件。我注意到它总是显示我的数据库字段中的原始文本,它不会解释文本中的 html - 因此它显示 mytext 而不是仅以粗体显示 mytex
我想知道 DetailsView/FormView 和 ObjectDataSource 是否有足够的能力来插入/编辑您的记录? 或者更好地问你你更喜欢使用它们还是自己制作表格? 因为有时将它们用于复
我有一个带有模板字段的 DetailsView 控件,如下所示: ' runat="server"> ' oncommand="btnUpdateCommand"/>
我正在尝试将数据表绑定(bind)到详细信息 View ,但并非数据表中的所有记录都显示在详细信息 View 中。 例如,我的数据表将有 2 个不同的行。当绑定(bind)到详细信息 View 时,它
网络和 C# 4。 我有一个 DetailsView 控件,我使用一些自定义逻辑进行数据绑定(bind)。 在我的 DetailsView 中输入数据时,我想使用 Event "Inserted"(或
实际上我对 Xcode 很陌生,无法通过谷歌搜索找到以下两个问题的答案: 简而言之:我正在开发一个显示提案的 iPad 应用程序。为此,您应该从 MasterView 中的表格中选择一个建议,然后在横
如何制作特定高度的特定详情 View 行?我尝试了 css 和 itemstyle-height,但我似乎错位了我的大脑和/或明显不明白其中的某些东西是如何工作的。 可能听起来很愚蠢或不适合使用,但我
我有一个 ASP.NET GridView ,它有几个关联的详细信息 View 和一个辅助 GridView 。当用户单击 gridview 中的一行时,detailsviews 会在 gridvie
我有一个绑定(bind)到 SqlDataSource 的 DetailsView。它还有一个 Edit CommandField,显示在自动生成的行的底部。
我正在使用 ASP DetailsView并希望元素标题根据 DetailsView 的模式而有所不同在。 我有两张图片 - 每张都是 500 像素宽和 30 像素高。右边的 300px 是白色的,而
我是一名优秀的程序员,十分优秀!