为了账号安全,请及时绑定邮箱和手机立即绑定

(立即结贴)关于GridView的RowDataBound操作问题

(立即结贴)关于GridView的RowDataBound操作问题

慕沐林林 2018-12-07 03:11:13
//我想拿出对某一个字段值,处理后再显示出来.(功能已实现,有一个地方处理的不优雅)protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string id = (string)DataBinder.GetPropertyValue(e.Row.DataItem, "CourseId"); Literal lt = new Literal(); lt.Text = sb.ToString();//在这里,我用e.Row.Cells[1]这样有一个问题,就是前面gridview如再列有增删,这里代码就得改动.//有没有一种方式,可以通过绑定的字段植来判断所在的单元格的?或是其它方法. e.Row.Cells[1].Controls.Add(lt); } }  
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超12个赞

看的你代码的意思是想增加一个控件来保存每一行的 CourseId, 这种操作可以在标记页面来做啊。每次都动态添加、效率不高,

像下面一样:
        <asp:GridView ID="GridView1" runat="server">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="lblID" runat="server" Text='<%# Eval("CourseId")%>' />
                        <asp:TextBox ID="txt" runat="server" Text='<%# Eval("CourseName")%>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

CS 页面:只要查找这个 lblID 控件、获取值就可以了。

Label lbl=e.FindControl("lblID") as Label;

 

这样也省下了手动 设置值的问题。

 

 

 


查看完整回答
反对 回复 2019-01-21
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

多选框列?不是很明白,楼上这个解决方案挺好的啊。你甚至不用绑定到某个字段值,而是绑定到某个方法

<ItemTemplate>

<input type=checkbox value='<%#GetCheckValue(Eval("CourseId"))%>'>

</ItemTemplate>

查看完整回答
反对 回复 2019-01-21
  • 2 回答
  • 0 关注
  • 428 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信