WEB开发网
开发学院WEB开发ASP.NET GridView中利用隐藏的TemplateFied来进行数据访问... 阅读

GridView中利用隐藏的TemplateFied来进行数据访问

 2006-05-19 17:08:29 来源:WEB开发网   
核心提示: 在上一个学习随笔中我们可以利用DataKeyNames和DataKeys来进行GridView主键列的数据访问, 在后来试验中,我发现我们可以利用TemplateField来实现其他的数据访问.<asp:TemplateField Visible="False"> <ItemT

   在上一个学习随笔中我们可以利用DataKeyNames和DataKeys来进行GridView主键列的数据访问, 在后来试验中,我发现我们可以利用TemplateField来实现其他的数据访问.

<asp:TemplateField Visible="False">
   <ItemTemplate>
      <asp:Literal id="litUserName" runat="Server" Text='<%#Eval("UserName")%>'/>
   </ItemTemplate>
</asp:TemplateField>

//后台实现

String userName = ((Literal)GridView1.SelectedRow.FindControl("litUserName")).Text;  
   GridView的AutoGenerateSelectButton属性可以直接使表格实现选择,  如果不想多增加一列选择列, 我们可以利用TemplateField实现GridView的选择.

asp.net代码如下:

<asp:BoundField DataField="ObjectID" HeaderText="ID"/>
<asp:TemplateField>
   <HeaderTemplate>
     Name
   </HeaderTemplate>
   <ItemTemplate>
     <asp:LinkButton id="lbName" runat="Server" CommandName="Select">
       <%#Eval("Name")%>
     </asp:LinkButton>
   </ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Status" HeaderText="Status"/>
同时要给GridView增加两个事件处理RowCreated, RowCommand
//RowCreated事件处理
void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
       if (e.Row.RowType == DataControlRowType.DataRow)
       {         ((LinkButton)e.Row.FindControl("lbName")).CommandArgument = e.Row.RowIndex.ToString();
       }
}
//RowCommand事件处理
void GridView1_RowCommand(object source, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
   GridView1.SelectedIndex = int.Parse(e.CommandArgument.ToString());
}

这样在点击名称时就可以同时进行选择,不必再利用选择列.

Tags:GridView 利用 隐藏

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接