Как решить эту проблему: тег сервера плохо сформирован

У меня есть гиперссылка на страницу aspx. Я редактирую его так:

 <asp:HyperLink ID="hypDuzenle" runat="server" 
         NavigateUrl='<%# String.Format("javascript:window.open('~/User/K/KPrintForm.aspx?
                    CD={0}&CT={1}&W={2}&SN={3}&MNR={4}&PNF={5}&MDT={6}',
                    'MsgWindow', 'width=200, height=100')", Eval("B_CD"), Eval("B_CZ"), 
                     Eval("B_WE"), Eval("B_SE"), Eval("MAT"), Eval("SAT"), Eval("MAN"))%>' 
                     ImageUrl="~/img/printer.png">
 </asp:HyperLink> 

Однако я получаю это сообщение об ошибке:

Ошибка Парсера
Описание: произошла ошибка при анализе ресурса, необходимого для обслуживания этого запроса. Пожалуйста, просмотрите следующие сведения об ошибке разбора и измените исходный файл соответствующим образом.
Сообщение об ошибке парсера: тег сервера не сформирован.

Где может быть проблема?

2 ответа

  1. Лучшим решением для этой ошибки является установка значения в коде позади.

    <asp:HyperLink ID="hypDuzenle" runat="server" ImageUrl="~/img/printer.png">
    </asp:HyperLink>
    
    protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if(e.Row.RowType == DataControlRowType.DataRow)
        {
            HyperLink hypDuzenle=(HyperLink)e.Row.FindControl("hypDuzenle");
    
            string B_CD = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "B_CD"));
            string B_CZ = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "B_CZ"));
            string B_WE = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "B_WE"));
            string B_SE = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "B_SE"));
            string MAT = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "MAT"));
            string SAT = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "SAT"));
            string MAN = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "MAN"));      
    
            hypDuzenle.NavigateUrl="#";
            hypDuzenle.Attributes.Add("onclick", String.Format("javascript:window.open('"+ResolveUrl("~/User/K/KPrintForm.aspx")+"?CD={0}&CT={1}&W={2}&SN={3}&MNR={4}&PNF={5}&MDT={6}','MsgWindow', 'width=200, height=100')", B_CD, B_CZ, B_WE, B_SE, MAT, SAT, MAN));
        }
    }
    
  2. Замените гиперссылку asp:обычной ссылкой на html-тег:

    <a href='<%# String.Format("javascript:window.open('~/User/K/KPrintForm.aspx?
                        CD={0}&CT={1}&W={2}&SN={3}&MNR={4}&PNF={5}&MDT={6}',
                        'MsgWindow', 'width=200, height=100')", Eval("B_CD"), Eval("B_CZ"), 
                         Eval("B_WE"), Eval("B_SE"), Eval("MAT"), Eval("SAT"), Eval("MAN"))%>'><img src="~/img/printer.png">
             </a>