Gridview是用于显示和操作来自各种数据源的数据的控件。
我正在将 dotvvm 用于业务线应用程序,需要广泛使用 gridview 并且有一些问题需要解决。 使用内联时推荐的验证方法是什么
将自定义 GridView 添加到 WinUI 3 C# 应用程序(无法使用 Page.Resources 或 Window.Resources)
我第一次从事 WinUI 3 C# 项目。到目前为止,这是我的代码 XAML 代码,它可以工作: 我第一次参与 WinUI 3 C# 项目。这是我到目前为止的 XAML 代码,它可以工作: <?xml version="1.0" encoding="utf-8"?> <Window x:Class="Greek_Television.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Greek_Television" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="Greek Television"> <Window.SystemBackdrop> <MicaBackdrop Kind="BaseAlt"/> </Window.SystemBackdrop> <StackPanel> <Grid x:Name="AppTitleBar" Height="48"> <Grid.ColumnDefinitions> <ColumnDefinition x:Name="LeftPaddingColumn" Width="0"/> <ColumnDefinition x:Name="IconColumn" Width="Auto"/> <ColumnDefinition x:Name="TitleColumn" Width="Auto"/> <ColumnDefinition x:Name="LeftDragColumn" Width="*"/> <ColumnDefinition x:Name="SearchColumn" Width="Auto"/> <ColumnDefinition x:Name="RightDragColumn" Width="*"/> <ColumnDefinition x:Name="RightPaddingColumn" Width="0"/> </Grid.ColumnDefinitions> <Image x:Name="TitleBarIcon" Source="/Images/WindowIcon.png" Grid.Column="1" Width="16" Height="16" Margin="8,0,0,0"/> <TextBlock x:Name="TitleTextBlock" Text="Greek Television" Style="{StaticResource CaptionTextBlockStyle}" Grid.Column="2" VerticalAlignment="Center" Margin="4,0,0,0"/> <AutoSuggestBox Grid.Column="4" QueryIcon="Find" PlaceholderText="Αναζήτηση" VerticalAlignment="Center" Width="300" Margin="4,0"/> </Grid> <Pivot> <PivotItem Header="Όλα τα κανάλια"> <!--This is where I want to add the GridView--> </PivotItem> <PivotItem Header="Ελληνικά"> <!--This is where I want to add the GridView--> </PivotItem> <PivotItem Header="Ξένα"> <!--This is where I want to add the GridView--> </PivotItem> <PivotItem Header="Αγαπημένα"> <!--This is where I want to add the GridView--> </PivotItem> </Pivot> </StackPanel> </Window> 在每个 Pivot 选项卡中,我想添加一个 custom GridView,就像 Microsoft Store 中的 WinUI 3 Gallery 应用程序建议的那样。这是 Gallery 应用程序提供的代码: <!-- The GridView used for this sample is shown below, with all of the necessary added properties. --> <GridView x:Name="ContentGridView" ItemsSource="{x:Bind Items}" ItemTemplate="{StaticResource ImageTextTemplate}" IsItemClickEnabled="False" CanDragItems="False" AllowDrop="True" CanReorderItems="True" SelectionMode="Single" SelectionChanged="ContentGridView_SelectionChanged" ItemClick="ContentGridView_ItemClick" FlowDirection="LeftToRight"/> <!-- ContentGridView_SelectionChanged and ContentGridView_ItemClick are functions defined in the code-behind to handle the events of when a selection changes on the GridView and when an item is clicked. --> <!-- The data template bound to this GridView's ItemTemplate property is based on which one you select from the options on the right. The currently selected DataTemplate is: --> <!-- ImageTextTemplate: --> <DataTemplate x: Key = 'ImageTextTemplate' x: DataType = 'local1:CustomDataObject'> <Grid AutomationProperties.Name = '{x:Bind Title}' Width = '280'> <Grid.ColumnDefinitions> <ColumnDefinition Width = 'Auto'/> <ColumnDefinition Width = '*'/> </Grid.ColumnDefinitions> <Image Source = '{x:Bind ImageLocation}' Height = '100' Stretch = 'Fill' VerticalAlignment = 'Top'/> <StackPanel Grid.Column = '1' Margin = '8,0,0,8'> <TextBlock Text = '{x:Bind Title}' Style = '{ThemeResource SubtitleTextBlockStyle}' Margin = '0,0,0,8'/> <StackPanel Orientation = 'Horizontal'> <TextBlock Text = '{x:Bind Views}' Style = '{ThemeResource CaptionTextBlockStyle}'/> <TextBlock Text = ' Views ' Style = '{ThemeResource CaptionTextBlockStyle}'/> </StackPanel> <StackPanel Orientation = 'Horizontal'> <TextBlock Text = '{x:Bind Likes}' Style = '{ThemeResource CaptionTextBlockStyle}'/> <TextBlock Text = ' Likes' Style = '{ThemeResource CaptionTextBlockStyle}'/> </StackPanel> </StackPanel> </Grid> </DataTemplate> 我不知道如何将其添加到我的代码中。我尝试过使用 或 ,但是 VS 会强调这些并在我尝试使用它们时抛出错误(无论如何我不确定如何正确使用它们)。 任何帮助表示赞赏。预先感谢您! 致以诚挚的问候 您可以将资源添加到窗口的根元素,而不是直接将资源添加到窗口本身: stackPanelRoot.Resources.Add(...); XAML: <Window x:Class="Greek_Television.MainWindow" ...> <StackPanel x:Name="stackPanelRoot"> 当然你也可以直接在XAML标记中将资源添加到根元素: <StackPanel> <StackPanel.Resources> <GridView x:Key="...">
UWP - 当列数更改时,GridView 上的顺序将是错误的
我遇到一个问题,当更改列数时,Gridview 上的顺序会错误。 请问有人可以帮忙解决吗? 主页.xaml 我遇到一个问题,当更改列数时,Gridview 上的顺序会错误。 请问有人可以帮忙解决吗? 主页.xaml <Page x:Class="DragDropTestApp.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="using:DragDropTestApp" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" mc:Ignorable="d"> <Grid> <Button Click="Button_Click" Content="Update" /> <GridView x:Name="grid" Margin="100,10,0,10" AllowDrop="True" CanDragItems="True" CanReorderItems="True" IsSwipeEnabled="True" ItemsSource="{x:Bind ViewModel.PreviewItems}"> <GridView.ItemTemplate> <DataTemplate> <Grid Width="340" Height="240" Padding="5,0,5,0" BorderThickness="1"> <Grid.RowDefinitions> <RowDefinition Height="50" /> <RowDefinition Height="180" /> </Grid.RowDefinitions> <ContentPresenter Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Top" Content="{Binding ImageThumbnail}" /> </Grid> </DataTemplate> </GridView.ItemTemplate> <GridView.ItemsPanel> <ItemsPanelTemplate x:Name="clu"> <WrapGrid MaximumRowsOrColumns="5" Orientation="Horizontal" /> </ItemsPanelTemplate> </GridView.ItemsPanel> </GridView> </Grid> </Page> MainViewModel.cs public class MainViewModel : ObservableObject { public ObservableCollection<PreviewItem> PreviewItems = new ObservableCollection<PreviewItem>(); public MainViewModel() { for (int i = 0; i < 20; i++) { var item = new PreviewItem(); item.ImageThumbnail = new Windows.UI.Xaml.Controls.Image(); ImageSource result = new BitmapImage(new Uri($"ms-appx:///Assets/{i + 1}.png")); item.ImageThumbnail.Source = result; PreviewItems.Add(item); } } } 预览项目.cs public class PreviewItem : ObservableObject { private Image _imageThumbnail; public Image ImageThumbnail { get => _imageThumbnail; set => SetProperty(ref _imageThumbnail, value); } public PreviewItem() { } } 这是我的项目和电源线。 https://github.com/houzhiwei/UWPProject 谢谢 扎克 我在gridview上开发了一个页面列表,希望它能正常工作。 这是由 GridView 的默认虚拟化行为引起的,当项目滚动到视图之外时,它会重用项目的容器。 如果您不希望出现此行为,建议您将 WrapGrid 替换为 ItemsWrapGrid 并设置 CacheLength="0" 以禁用 GridView 虚拟化。 <GridView.ItemsPanel> <ItemsPanelTemplate x:Name="clu"> <ItemsWrapGrid CacheLength="0" MaximumRowsOrColumns="5" Orientation="Horizontal" /> </ItemsPanelTemplate> </GridView.ItemsPanel>
Yii2 GridView 使用 Kartik Select2 作为过滤器仅显示一次
我有一个标准的 Yii2 GridView 并想在两个不同的网格列中使用 Kartic Select2 小部件作为过滤器。但它只会在一列中显示一次。在第二列中,过滤器将...
我想制作一个带边框的网格,所以我创建了一个空单元格视图,它是较大的黑色视图之上的较小的白色视图,因此它看起来像是一个带有黑色边框的白色单元格,但是当我将其放入...
更新和取消按钮不起作用,这些按钮位于网格视图之外 设想: 默认的asp.net gridview设计的问题是GridView编辑列总是出现...
我将会话数据绑定到具有自动生成列的 Gridview,以便在会话过期时检索该数据。 我将会话数据绑定到具有自动生成列的 Gridview,以便在会话过期时检索该数据。 <asp:GridView ID="GridView_SessionTable" runat="server" AutoGenerateColumns="true"/> 布尔列显示为复选框,但是我尝试检索这些列的值,但没有返回任何内容。 protected void ScanGrid(object sender, EventArgs e) { foreach (GridViewRow row in GridView_SessionTable.Rows) { Test.Text = Test.Text + "ID: " + row.Cells[0].Text + "Boolean Value:" + row.Cells[4].Text; } } 所有其他非布尔值的列都被正确检索!必须有一种方法来获得该值。如果我查看源文件,我会看到单元格 html 内容是: <span class="aspNetDisabled" title="Selectable"><input id="GridView_SessionTable_ctl00_0" type="checkbox" name="GridView_SessionTable$ctl02$ctl00" checked="checked" disabled="disabled" /></span> 在 GridView 中为布尔列呈现时,复选框将成为 cells[] 集合的子控件。 所以,你需要 ((CheckBox)row.Cells[2].Controls[0]).Checked 上面返回一个布尔值。因此,您可以添加到上面: ((CheckBox)row.Cells[2].Controls[0]).Checked.ToString()
GridView OnSelectedIndexChanged 事件未触发
我正在尝试获取 GridView 的选定行,并且我知道我应该能够根据 OnSelectedIndexChanged 事件获取该信息。每当我单击该行时,事件就会...
可滚动 Div 中的 ASP.NET GridView:滚动到 SelectedIndex
我有一个包含在可滚动 div 中的 GridView。我还有一个按钮,它根据页面上文本框的文本选择此 GirdView 中的一行。该行选择得很好,但我不能...
如何根据其他列值填充 GridView EditItemTemplate 中的 DropDownList
在 GridView 中编辑一行时,我需要一个 DropDownList,其可用值列表取决于该行中的其他列(现在我们只说记录的“类型”);也就是说,不同的操作...
我正在实现一个 GridView,它通过单击列标题进行排序。我正在寻找标准解决方案之一,但它对我不起作用。 我有一个标题“P”,而
刚开始使用ASP.NET,发现GridView很难使用。我有一组会话变量,我想将其放入 GridView 控件中,但我缺乏知识。文件: <%@ Page...
使用 GridView asp:ButtonField 为更新面板设置异步触发器
使用 GridView 控件中的 asp:ButtonField 为 UpdatePanel 设置 AsyncPostBackTrigger 的正确语法是什么? 我需要为我的
我想在按下后退按钮并且视频正在播放时关闭VideoView。 这是我的代码: 公共类 MainActivity 扩展 AppCompatActivity { 公共整数[] mVideo = { ...
错误 指定的参数超出了有效值的范围。参数名称:DataGridview Row Data Bound 中的索引
我收到一个错误 描述:执行期间发生未处理的异常。 当前的网络请求。请查看堆栈跟踪以了解更多信息 有关错误及其位置的信息
升序排序 ASP.NET C# Gridview 中较早出现的空白行问题
我正在尝试在同一网格视图中使用文本框查看/添加/更新/删除记录。页面末尾只有保存按钮。 我有一个 ASP.NET gridview,每行有 5 个文本框。页面尺寸...
如何在GridView中使用DataBinder.Eval?
我有一个包含标签的GridView,我需要根据数据显示/隐藏标签。 这是我的网格视图: 我有一个包含标签的GridView,我需要根据数据显示/隐藏标签。 这是我的 GridView: <asp:GridView ID="GridView_Profiles" runat="server" CssClass="grid" HorizontalAlign="Center" OnRowDataBound="GridView_Profiles_OnRowDataBound" CellSpacing="1" GridLines="None" AutoGenerateColumns="False" Width="90%"> <Columns> <asp:Label ID="Label_SelectedCount" runat="server"> <span style="width:auto;color:White;background-color:#0c95be;height:auto;margin:0px;font-size:12px;cursor:pointer;padding-left:10px;padding-right:10px;padding-top:5px;padding-bottom:5px;"> <%#Eval("Count") %> </span> </asp:Label> <asp:Label ID="lblNoCount" runat="server" Text="-"></asp:Label> </Columns> </asp:GridView> 在上面的 GridView RowDataBound 中,我应该如何使用 DataBinder.Eval 检查边界数据? 使用它来获取 RowDataBound 事件中的标签 DataBinder.Eval: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { // find your label text in gridview with DataBinder.Eval string count = DataBinder.Eval(e.Row.DataItem, "Count") as string; // find your label control in gridview Label lb = (Label)e.Row.FindControl("Label_SelectedCount"); // check condition to show/hide label (you use your own condition) if(count > 0) lb.Visible = true; else lb.Visible = false; } } 或者您可以将 GridView 与 DataBinder.Eval 绑定,例如: <asp:TemplateField HeaderText="Count" <ItemTemplate> <asp:Label ID="Label_SelectedCount" runat="server" > <%# DataBinder.Eval(Container.DataItem, "Count")%> </asp:Label> </ItemTemplate> </asp:TemplateField> 注意: 您还可以将数据绑定到 Label 的 Text 属性,如下所示 Text='<%#Eval("Count") %>'。 我使用 ToString() 因为当数据不是字符串时我得到“null” protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string count = DataBinder.Eval(e.Row.DataItem, "Count").ToString(); Label LabelCount = (Label)e.Row.FindControl("Label_SelectedCount"); if((int)count > 0) LabelCount .Visible = true; else LabelCount .Visible = false; } }
如何使用 LazyVGrid 创建每行的动态 GridRow 宽度?
我想做的是创建一个项目网格,其中每行有 1 个项目或 2 个项目,具体取决于是否选择单元格。有一种边缘情况,一个单元格可以单独位于一行,是的...
我有这个代码 脚手架( 应用栏:应用栏( 海拔:0, 工具栏高度:0, ), 主体:布局构建器( 建造者:(