c# - 将工具提示分配给 Infragistics WebDataGrid 中所选行的单元格

标签 c# tooltip infragistics webdatagrid

我有一个包含组名称的 Infragistics WebDataGrid。我想向组单元格添加一个工具提示,当用户选择它时,该提示会列出与该组关联的医生。 我创建了一个行选择事件,当选择组行时,该事件会获取医生的姓名。该方法如下,当选择行时返回名称。当我将字符串分配给工具提示时,当您将鼠标悬停在单元格上时,工具提示不会显示。

protected void wdgMedGrp_RowSelected(object sender, Infragistics.Web.UI.GridControls.SelectedRowEventArgs e)
        {
            Infragistics.Web.UI.GridControls.SelectedRowCollection selectedRows = e.CurrentSelectedRows;
            int iMedicalGroupID = Convert.ToInt32(selectedRows[0].Items.FindItemByKey("ID").Value.ToString());

            //Get Doctor names for this group
            DataTable dtDoctors = new DataTable("Doctors");

            SqlConnection SqlConn = null;
            string strSqlConnection = ConfigurationManager.ConnectionStrings["CAP06"].ConnectionString;
            using (SqlConn = new SqlConnection(strSqlConnection))
            {
                using (SqlCommand SqlCmd = new SqlCommand("phyadmGetPhysicianNames", SqlConn))
                {
                    SqlCmd.CommandType = CommandType.StoredProcedure;
                    SqlCmd.Parameters.Add("@MedicalGroupID", SqlDbType.Int).Value = iMedicalGroupID;
                    SqlConn.Open();
                    using (SqlDataAdapter dataReturned = new SqlDataAdapter(SqlCmd))
                    {
                        dataReturned.Fill(dtDoctors);
                    }
                }
            }

            string strPhysicianNames = string.Empty;
            foreach(DataRow row in dtDoctors.Rows)
            {
               strPhysicianNames += row["PhysicianFullName"].ToString() + "\r\n";
            }

            selectedRows[0].Items.FindItemByKey("Name").Tooltip = strPhysicianNames;
        }

这是我的标记:

<ig:WebHierarchicalDataGrid runat="server" height="600px" width="875px" 
AutoGenerateBands="False" AutoGenerateColumns="False" DataKeyFields="ID"
DataMember="SqlDataSource3_DefaultView" StyleSetName="Windows7" ID="wdgMedGrp"
DataSourceID="WebHierarchicalDataSource2" Key="SqlDataSource3_DefaultView" 
OnRowAdded="wdgMedGrp_RowAdded" OnRowSelectionChanged="wdgMedGrp_RowSelected">
<Columns>
    <ig:BoundDataField DataFieldName="ID" Key="ID" Hidden="true">
        <Header Text="ID" />
        <header text="ID" />
    </ig:BoundDataField>
    <ig:BoundDataField DataFieldName="Name" Key="Name" Width="68%">
        <Header Text="Name" />
        <header text="Name" />
    </ig:BoundDataField>
    <ig:BoundDataField DataFieldName="IsVisible" Key="IsVisible" Width="22%">
        <Header Text="Is Visible?" />
        <header text="Is Visible?" />
    </ig:BoundDataField>
</Columns>
 <Behaviors>
    <ig:Filtering>
    </ig:Filtering>
    <ig:RowSelectors EnableInheritance="True" RowSelectorCssClass="groupRowSelectorWidth">
    </ig:RowSelectors>   
    <ig:Selection RowSelectType="Single" Enabled="true" CellClickAction="Row">
        <AutoPostBackFlags RowSelectionChanged="true" />
    </ig:Selection>     
 </Behaviors>   

为什么工具提示不显示?

谢谢。

最佳答案

我也有类似的需求。我通过创建另一个隐藏列来解决这个问题,其中包含我想要的每行的工具提示,然后在 InitializeRow 事件中设置工具提示,如下所示:

Protected void wdgMedGrp_InitializeRow(object sender, RowEventArgs e)
{
    try
    {
       e.Row.Items[1].Tooltip = e.Row.Items[2].Value.ToString();
    }
    catch (Exception){} // ignore any exceptions
}

效果很好。缺点是我必须对每条记录执行此操作,一次一个,这意味着我无法使用 SQL 调用中的 .Fill() 方法。

关于c# - 将工具提示分配给 Infragistics WebDataGrid 中所选行的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32076457/

相关文章:

c# - 按钮内的 WPF 按钮单击问题

c# - 如何在Ubuntu上托管/发布.Net Core Web API?

html - 是否可以在 ie7 中的子跨度前面显示父跨度的边框?

php - jQGrid 与 jquery 工具提示工具

c# - 如何获取超网格的所有行甚至删除的行

infragistics - 以编程方式启动 igUpload 小部件上的文件选择窗口

c# - 将检查开始时间和结束时间是否可用的 LINQ 查询

c# - 基类中的反射是一个糟糕的设计理念吗?

c - 如何向菜单项添加工具提示

wpf - Infragistics xamgid 或 xamdatagrid 中的 AutoGeneratingColumn 事件?