欢迎光临
我们一直在努力

gridview中利用隐藏的templatefied来进行数据访问_asp.net技巧

建站超值云服务器,限时71元/月

    在上一个学习随笔中我们可以利用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());
}


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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » gridview中利用隐藏的templatefied来进行数据访问_asp.net技巧
分享到: 更多 (0)