none
错误Newline in constant 怎么解决?还要不要人活了! RRS feed

  • 问题

  • 也不知道是怎么回事,就是编译时候报错,说第一行,第一列有问题,出错代码是Newline in constant
    我仔细检查了一下,我的代码里有一个Datalist 控件,绑定一个Label, 四个RadioButton,
    把这段代码注释掉 就没事情了,要不然不管怎么改,都是报错,而且说错误在第一行第一列,第一行第一列能有什么错啊? 根本不是的,报错也乱报!

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ShowQuestion.aspx.cs" Inherits="ComponentPages_ShowQuestion" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <body>
     <form id="form1" runat="server">
        <div>
        <table style="width:100%;">
            <tr>
                <td>
                    <asp:Label ID="lblSelectSubject" runat="server" Text="Select Your Subject Areas:"></asp:Label>
                </td>
                <td>
                    <asp:DropDownList ID="ddlQuestionName" runat="server" AutoPostBack="True">
                    </asp:DropDownList>
                </td>
                <td>
                    <asp:Button ID="btnShowAnswer" runat="server" Text="Show Answers" onclick="btnShowAnswer_Click" />
                </td>
                <td>
                    &nbsp;</td>
            </tr>
            <tr>
                <td colspan="3">
                   <asp:DataList ID="examDatalist" runat="server" BorderColor="#0000CC" BorderStyle="Groove" BorderWidth="2px">
                        <ItemTemplate>
                            <table style="width:100%;">
                                <tr>
                                    <td>
                                        <asp:Label ID="lblQuestionContent" runat="server" Text='<%# "Question No."+(Container.ItemIndex + 1) + DataBinder.Eval(Container.DataItem, "questionContent"))" %>'></asp:Label>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <asp:RadioButton ID="rbtn1" runat="server" GroupName="gnSelect" Text='<%# "A: "+DataBinder.Eval(Container.DataItem, "answer1") %>' />
                                        <br />
                                        <asp:RadioButton ID="rbtn2" runat="server" GroupName="gnSelect" Text='<%# "B: "+DataBinder.Eval(Container.DataItem, "answer2") %>' />
                                        <br />
                                        <asp:RadioButton ID="rbtn3" runat="server" GroupName="gnSelect" Text='<%# "C: "+DataBinder.Eval(Container.DataItem, "answer3") %>' />
                                        <br />
                                        <asp:RadioButton ID="rbtn4" runat="server" GroupName="gnSelect" Text='<%# "D: "+DataBinder.Eval(Container.DataItem, "answer4") %>' />
                                    </td>
                                </tr>
                                <tr>
                                    <td>

                                    </td>
                                </tr>
                            </table>
                        </ItemTemplate>
                    </asp:DataList>
                    </td>
                <td>
                    &nbsp;</td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="btnSubmit" runat="server" Text="Submit Answers"
                        onclick="btnSubmit_Click" />
                </td>
                <td>
                    <asp:Button ID="Button1" runat="server" Text="I want to Redo" />
                </td>
                <td>
                    <asp:Button ID="btnRedoError" runat="server"
                        Text="Redo incorrect questions" />
                </td>
                <td>
                    <asp:Label ID="lblResult" runat="server" ></asp:Label>
                </td>
            </tr>
        </table>
        </div>
        </form>
     </body>
    </html>

    把加粗的部分注释掉就不报错了。
    好好的网页,这么个东西就是要出来折腾一下,欺负我们这些新手。

    2009年7月9日 23:32

答案

  • 你好,还是写法有问题,未正确闭全的引号及括号,GridView 中是用 Container.DataItemIndex。。
    <asp:Label ID="lblQuestionContent" runat="server" Text='<%# "Question No."+(Container.DataItemIndex + 1) + DataBinder.Eval(Container.DataItem, "questionContent") %>'></asp:Label>


    知识改变命运,奋斗成就人生!
    2009年7月10日 2:35
    版主

全部回复

  • 你好,还是写法有问题,未正确闭全的引号及括号,GridView 中是用 Container.DataItemIndex。。
    <asp:Label ID="lblQuestionContent" runat="server" Text='<%# "Question No."+(Container.DataItemIndex + 1) + DataBinder.Eval(Container.DataItem, "questionContent") %>'></asp:Label>


    知识改变命运,奋斗成就人生!
    2009年7月10日 2:35
    版主
  • 谢谢解答! 可是我还是不太清楚,我查DataBinder的类也难查,我在美国,英语没问题,查MSDN只能查到皮毛, 只有一条解释

    我只能把Datalist 重新做一遍,通过了不报错。

    但是,以后只要在Gridview, Datalist编辑,动不动就出这个Newline in constant, 不过都知道原因,各种各样的原因,我只能再仔细看看了。

    软件 用起来才是 目的, 用不起来 一切都等于 0。

    2009年7月10日 13:12
  • 有些情况,提示的错误并不能准确的表明错误的原因,你可以通过调试,逐行排查等方式来找到错误的真正原因
    知识改变命运,奋斗成就人生!
    2009年7月10日 13:16
    版主
  • 谢谢,我再看看,我主要是要使用,我不是搞编程的,只要能用起来就好。
    2009年7月10日 13:21