GridView RowDataBound没有运行代码

时间:2017-07-18 09:37:02

标签: asp.net vb.net gridview rowdatabound

我在sql中有Ref表和patientDetails。例如,参考我有性别列的值(女性,男性等),在patientDetails中,Gender列是24,我将数据绑定到patientDetails,我在Gridview的Gender列中有24,但它应该是Female。 (外键和导航属性不起作用,因为我在Ref表中有很多不同的行,如种族,宗教等)。我被告知RowDataBound会工作所以我现在有这个方法,但它不会超过If语句行..

更多详情:

我的数据源绑定到PatientDetails表,该表具有Gender列(带有数字值 - 从ref表中获取)。我的意思是我有Ref表(就像查找所有内容 - 列ID,名称,描述)在名称中我有性别,族群,宗教信息)在描述栏中我有例如性别的值:男性,女性等但是在Patient中的Gender列返回值的相应Ref ID - 对于女性,它将在Patient中的Gender列中存储24个),这样我的Gridview正确绑定并将什么记录存储在PatientDetails表中,但是在性别中有24,25个没有帮助显示所以我被告知RowDataBound可以在Ref表

中带来正确的相应值
 Protected Sub gvPatientDetails_RowDataBound(sender As Object, e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim lblGender As Label = e.Row.FindControl("lblGender)
    End If
End Sub


 <asp:GridView ID="gvPatientDetails" runat="server" AutoGenerateColumns="false" OnRowDataBound="gvPatientDetails_RowDataBound">

<Columns>
            <asp:TemplateField HeaderText="Gender">
                <ItemTemplate>
            <asp:Label ID="lblGender" runat="server" Text='<% #Eval("lblGender") %>'></asp:Label>
                </ItemTemplate>
  </asp:TemplateField>
        </Columns>
    </asp:GridView>

1 个答案:

答案 0 :(得分:0)

好的,我明白了。

对于所有可能会遇到这种情况的初学者来说,上面的代码正常工作,当我第一次调试时它只是点击IF语句然后没有进去(因为第一个是Header(我知道呃! !)点击继续,它应该给你标签的实际值,然后它应该是简单的。只是getDataFromRef(从Ref - id = lblGender获取数据的方法)然后

lblGender.Text = ( The value from method - getDataFromRef ).

基本上我不知道调试器会从Header开始,然后当你点击continue时会经过gridview行!

所有最好的,快乐的编码!:)