Ratingcontrol给出javascript:void(0)

时间:2011-04-18 19:14:11

标签: c# .net asp.net javascript-events ajaxcontroltoolkit

由于缺少内联css样式表,我的基本测试评级控件出现一些小问题后,我尝试在更新面板中动态添加一组评级控件,当我点击其他更新面板中的按钮时。面板都在父更新面板中,我已经定义了触发器并将updatemode设置为条件)。无论如何,当我点击按钮时,他会使用评级控件更新更新面板,但是当我将鼠标悬停在它们上面时,他总是显示0(当前评级),并且不会更改评级控制星形图像(filledStarRating)。与我的问题相关的代码(2种方法)

protected void imbformulier_Click(Object sender, ImageClickEventArgs e)
{
    imbFormulier.Visible = false;
    imbGebruikers.Visible = false;
    imbModellen.Visible = false;
    pnlGegevens1.Visible = false;
    pnlGegevens2.Visible = true;
    pnlNavigatie.Visible = true;
    pnlEval.Visible = true;    

    //kijken welk formulier moet ingevuld worden adhv de ddl's en dit meegeven aan de zelfgemaakte klasse
    List<EvaluatieFormulier> mijnformulieren = (List<EvaluatieFormulier>)Session["mijnformulieren"];
    IEnumerator<EvaluatieFormulier> enumerator = mijnformulieren.GetEnumerator();
    EvaluatieFormulier meetegeven = new EvaluatieFormulier();
    while (enumerator.MoveNext())
    {
        if (((enumerator.Current.GebruikergeevalueerdID == ddlGebruikers.SelectedValue) && (enumerator.Current.ModelID == Convert.ToInt32(ddlModellen.SelectedValue))))
        {
            meetegeven = enumerator.Current;
            //Eventueel tekst veranderen als er al was gewerkt aan een bepaalde evaluatie
            if (meetegeven.Tijdaangewerkt == 0)
            {
                lblInfo.Text = "Evaluatie gestart van " + ddlGebruikers.SelectedItem.Text;
                lblDatum.Text = "Evaluatie begonnen op: "+  DateTime.Now.Date.ToString("d/M/yyyy") + "(Vandaag)" ;
                //updaten in database
                Session["aantalminutenaangewerkt"] = 0;
                Session["aantalsecondenaangewerkt"] = 0;
                timTijdAanGewerkt.Enabled = true;
                lblTijd.Visible = true;
            }
            else
            {
                lblInfo.Text = "Evaluatie verdergezet van " + ddlGebruikers.SelectedItem.Text;
                lblDatum.Text = "Evaluatie laatst gewijzigd : " + meetegeven.Tijdingevuld.ToString();
                Session["aantalminutenaangewerkt"] = meetegeven.Tijdaangewerkt;
                Session["aantalsecondenaangewerkt"] = 0;
                timTijdAanGewerkt.Enabled = true;
                lblTijd.Visible = true;
            }
        }
    }

    //Rating controls aanmaken voor elke criteria
    List<AjaxControlToolkit.Rating> lijstratingcontrols = new List<AjaxControlToolkit.Rating>();

    Model modelmetdomeinen = new Model() ;
    IEnumerator<Model> modelenum = Database.laadModellenIn().GetEnumerator();
    while (modelenum.MoveNext())
    {
        if (modelenum.Current.ModelID == meetegeven.ModelID)
            modelmetdomeinen = modelenum.Current;
    }    

    //foreach (Domein domein in modelmetdomeinen.Domeins)
    //{
    //    foreach (Criterium criterium in domein.Criteriums)
    //    {
    //        AjaxControlToolkit.Rating ratingcontrol = new AjaxControlToolkit.Rating();
    //        ratingcontrol.ID = criterium.CriteriumNaam;
    //        ratingcontrol.StarCssClass = "ratingStar";
    //        ratingcontrol.EmptyStarCssClass = "emptyStarRating";
    //        ratingcontrol.WaitingStarCssClass = "emptyStarRating";
    //        ratingcontrol.FilledStarCssClass = "filledStarRating";
    //        ratingcontrol.Changed += new AjaxControlToolkit.RatingEventHandler(rating_Changed);
    //        ToolkitScriptManager1.RegisterAsyncPostBackControl(ratingcontrol);
    //        lijstratingcontrols.Add(ratingcontrol);
    //    }
    //}

    //Evaluatieform formulier = new Evaluatieform(meetegeven,lijstratingcontrols);
    Table evaluatietabel = new Table();
    int domeinteller =0;

    foreach (Domein domein in modelmetdomeinen.Domeins)
    {
        domeinteller++;
        if (domeinteller < 4)
        {
            TableRow domeinrij = new TableRow();
            TableCell domeintitel = new TableCell();
            domeintitel.Text = domeinteller + ". " + domein.DomeinNaam;
            domeintitel.BorderStyle = BorderStyle.None;
            domeinrij.Cells.Add(domeintitel);
            evaluatietabel.Rows.Add(domeinrij);
            foreach (Criterium criterium in domein.Criteriums)
            {
                int criteriumteller = 1;
                TableRow criteriumrij = new TableRow();
                TableCell criteriumtitel = new TableCell();
                TableCell opvulcell = new TableCell();
                TableCell ratingcell = new TableCell();

                criteriumtitel.BorderStyle = BorderStyle.None;
                opvulcell.BorderStyle = BorderStyle.None;
                ratingcell.BorderStyle = BorderStyle.None;

                criteriumtitel.Text = criteriumteller + ". " + criterium.CriteriumNaam;
                AjaxControlToolkit.Rating ratingcontrol = new AjaxControlToolkit.Rating();
                ratingcontrol.ID = criterium.CriteriumNaam;
                ratingcontrol.StarCssClass = "ratingStar";
                ratingcontrol.EmptyStarCssClass = "emptyStarRating";
                ratingcontrol.WaitingStarCssClass = "emptyStarRating";
                ratingcontrol.FilledStarCssClass = "filledStarRating";
                ratingcontrol.Changed += new AjaxControlToolkit.RatingEventHandler(rating_Changed);
                ratingcell.Controls.Add(ratingcontrol);
                ratingcell.Attributes.Add("runat", "server");
                ratingcell.Attributes.Add("onclick", "return false");

                criteriumrij.Cells.Add(opvulcell);
                criteriumrij.Cells.Add(criteriumtitel);
                criteriumrij.Cells.Add(ratingcell);

                evaluatietabel.Rows.Add(criteriumrij);
                criteriumteller++;
            }
        }
    }

    evaluatietabel.BorderStyle = BorderStyle.None;
    pnlEval.ContentTemplateContainer.Controls.Add(evaluatietabel);

    Session["formulieractief"] = true;
    pnlEval.Update();
    pnlGegevens1.Update();
    pnlGegevens2.Update();
}

我还添加了显示我的问题的the link to an image,以便您可以自己查看:

1 个答案:

答案 0 :(得分:0)

我们最近遇到了同样的问题,问题是最新版本的AjaxControltoolkit似乎需要ToolkitScriptManager而不是普通的ScriptManager。

所以试试改变你的     asp:ScriptManager标记到     asp:ToolKitScriptManager或     AJAX:ToolKitScriptManager 或者你的命名空间是什么。