GridView RowDataBound 不是 运行 代码

GridView RowDataBound not running code

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

更多详情:

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

中带上正确的对应值
 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>

好的,我成功了。

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

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

基本上我不知道调试器会从 Header 开始,然后当您点击继续时会遍历 gridview 行!

一切顺利,编码愉快!:)