【问题标题】:GridView RowDataBound not running codeGridView RowDataBound 未运行代码
【发布时间】:2017-07-18 09:37:01
【问题描述】:

我在 sql 中有 Ref 表和 patientDetails。例如,在参考文献中,我有带有值(女性、男性等)的性别列,在患者详细信息中,性别列是 24,我将数据绑定到患者详细信息,并且我在 Gridview 的性别列中有 24,但它应该是女性。 (外键和导航属性不起作用,因为我在 Ref 表中有很多不同的行,比如种族、宗教等)。有人告诉我 RowDataBound 会起作用,所以我现在有了这个方法,但它没有超过 If 语句行。..

更多详情:

我的数据源绑定到具有 Gender 列的 PatientDetails 表(带有数字值 - 这是从 ref 表中获取的)。我的意思是我有 Ref 表(就像查找所有内容一样 - 包含 ID、名称、描述列)在名称中我有性别、民族、宗教)在描述列中我有例如性别的值:男性、女性等但是在Patient 中的 Gender 列正在返回值的相应 Ref ID - 对于女性,它将在 Patient 的 Gender 列中存储 24),因此我的 Gridview 边界正确并获取存储在 PatientDetails 表中的内容,但是 Gender 中的 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>

【问题讨论】:

  • 用网格显示你的 aspx
  • 嗨蒂姆,我已经添加了 aspx 部分。谢谢!
  • 您的数据源是否有性别列值?正如您编写的 Label test has &lt;% #Eval("lblGender") %&gt; ,lblGender 是您在 DataSource 中的列名吗?

标签: asp.net vb.net gridview rowdatabound


【解决方案1】:

好的,我搞定了。

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

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

基本上我不知道调试器会从标题开始,然后当你点击继续时会通过 gridview 行!

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

【讨论】:

    猜你喜欢
    • 2018-08-13
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多