asp.net下拉列表工具提示(标题)奇怪的行为

时间:2010-10-22 09:34:00

标签: asp.net drop-down-menu tooltip

我使用以下代码隐藏在我的下拉列表中添加了“工具提示”:

        protected void btnAdd_Click(object sender, EventArgs e)
    {
        load_Buttons(1);
        tblAddCandidate.Visible = true;
        txtAdd_RegDate.Text = DateTime.Today.ToShortDateString();


        foreach (ListItem _listItem in this.ddlAssTutAdd.Items)
        {
            _listItem.Attributes.Add("title", _listItem.Text);
        }


        ddlAssTutAdd.Attributes.Add("onmouseover", "this.title=this.options[this.selectedIndex].title");

        ddlAssTutAdd.SelectedIndex = -1; ddlCentresAdd.SelectedIndex = -1; rblAdd_Gender.SelectedIndex = -1;
        txtAdd_CandNo.Text = ""; txtAdd_DOB.Text = ""; txtAdd_Ethnicity.Text = ""; txtAdd_Forename.Text = "";
        txtAdd_Initials.Text = ""; txtAdd_LRS.Text = ""; txtAdd_Notes.Text = ""; txtAdd_RegDate.Text = "";
        txtAdd_Surname.Text = "";

        txtAdd_CandNo.Focus();

    }

(下面的aspx代码)

                                    <asp:DropDownList ID="ddlAssTutAdd" TabIndex="9" runat="server" DataSourceID="SqlDataSource_TutAss"
                                    DataTextField="StaffName" DataValueField="StaffID" Width="300px"
                                    AppendDataBoundItems="true" >
                                    <asp:ListItem Value="0" Text="Please Select..." />    
                                </asp:DropDownList>

                                <asp:SqlDataSource ID="SqlDataSource_TutAss" runat="server" 
                                    ConnectionString="<%$ ConnectionStrings:CenCoordConStr %>" 
                                    SelectCommand="SELECT Staff.StaffID + ' : ' + Staff.StaffFirstname + ' ' + Staff.StaffSurname AS StaffName, Staff.StaffID FROM Staff INNER JOIN Assessors ON Staff.StaffID = Assessors.StaffID">
                                </asp:SqlDataSource>

然而,只有在您第二次单击“添加”按钮时它才有效。单击它一次加载工具提示“请选择...”但是当将鼠标悬停在下拉列表中的任何项目时,它会显示此工具提示。选择项目后,工具提示将不再起作用。 如果再次单击“添加”按钮,则一切正常!

有人有想法吗?

谢谢, 森

2 个答案:

答案 0 :(得分:1)

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DropDownList1.Items[0].Attributes.Add("Title", "Punjab Pollution Control Board");
            DropDownList1.Items[1].Attributes.Add("Title", "Hello");

        }
    }

答案 1 :(得分:0)

对不起Lee Sy En,我应该说我使用的是IE8。

我通过在代码隐藏中设置数据源而不是在aspx代码中解决了这个问题。我仍然想知道为什么它不能以这种方式工作,但是如果有人能够对它有所了解,只是出于好奇!