简单的GridView单选按钮行选择器

分享于 

5分钟阅读

Web开发

  繁體

介绍

本文提供了一种创建单选按钮 GridView 行选择器的方法,它与"选择"链接按钮的GridView 行为相同。

背景

一件事情总是关于 GridView 控件的一个问题是选择链接的计数器直观外观。 因为你要用单选按钮选择一个项目,我无法帮助你选择一个单选按钮。 这是我在两年前学习 ASP.NET 时首先想到的事情之一。 但是现在它并没有完全证明。 我发现了一些文章告诉我怎么做,但是这些控制中包括一点线路。

现在我已经有了更多的经验和研究,我再次针对同样的问题,决定解决它。 我想要一个纯的拖放控制,没有线路,替换选择链接,这就是我想要的。

代码

因为这是一段非常简单的代码,所以你可以在下面的所有优秀中看到控件:

[DefaultProperty("Text")][ToolboxData("<{0}:GridViewRowSelector 
 runat="""server"></{0}:GridViewRowSelector>")]publicclass GridViewRowSelector : RadioButton
{
 protectedoverridevoid Render(HtmlTextWriter writer)
 {
 GridViewRow row = (GridViewRow)this.NamingContainer;
 int currentIndex = row.RowIndex;
 GridView grid = (GridView)row.NamingContainer;
 this.Checked = (grid.SelectedIndex == currentIndex);
 this.Attributes.Add("onClick", "javascript:" + 
 Page.ClientScript.GetPostBackEventReference(grid, 
 "Select$" + currentIndex.ToString(), true));
 base.Render(writer);
 }
}

使用代码

使用代码很简单,只需按照以下步骤操作:

  • 单击解决方案资源管理器中的网站,然后单击"引用。"
  • 选择. NET 组件选项卡上的浏览按钮,或者选择VS2008中的浏览选项卡。
  • 选择( 这是在zip文件的调试/bin 目录中发现的Utilities.dll ) 提供的DLL。

然后,只需将 GridViewRowSelector 从工具箱拖放到 GridView 控件的模板字段中。

要在 GridView 上创建模板字段,请为 GridView ( 设计视图右上角的小箭头) 选择公共函数菜单,选择Add列,然后添加没有标题文本的TemplateColumn。

要让设计者将元素拖到模板字段中,请为你的GridView 再次选择公共函数菜单,然后选择"编辑模板"。 应能够为模板列选择 ItemTemplate,并将 GridViewRowSelector 拖到设计器的相应框中。 不要担心它显示错误- 这只是因为我还没有添加一个处理设计模式的适当的控件设计器。 我可以稍后做,但是感觉不必要,因为控件在设计时正确地显示在模板编辑之外。

如果你设置的样式为不同的background 颜色显示,则选中的行将在颜色中高亮显示,也可以在颜色中显示。

Points of Interest

要获得这个工作,必须跳过的步骤实际上是 GridView 控件中的一个主要问题: 没有 SelectRow 函数,可以选择一行并激发 GridView.SelectionChanged 事件。 如果可以使用 GridView.SelectionChanged 事件进行操作,那么创建一个控件来选择行的过程不会太糟糕。 你可以捕获你的RadioButtonCheckedChanged 事件,使用单选按钮所属的行号更新 GridView.SelectedIndex,然后离开你。 但是,我喜欢使用页面中的GridView.SelectionChanged 事件来显示附属数据( 尤其是现在AJAX已经在使用中),因为我将使用这个控件。

因为没有 GridView.SelectRow 方法,也没有一种方法可以在 GridView 上调用 SelectionChanged 事件,因为它是 protected 我唯一能够实现的方法是创建一个客户端的onClick 事件处理程序,它与 GridView 本身的选择链接相同。

当然,你不能仅仅触发相同的JavaScript命令来模拟 postback,因为 ASP.NET 为安全原因提供了度量,因此你需要,所以你需要对 postback 链接进行操作。

简单的位保持单选按钮显示与选定行的行一致。 server control server Checked button button button server button extended extended extended extended extended updates updates updates updates updates row row row row row row row row。


GRID  Select  按钮  Gridview  RAD  单选  
相关文章