我想用一个DataList来实现这样的“单词测验”功能:
界面上有一组单词,初始显示一个中文(绑定Chinese 字段)和一个文本框:
   <asp:DataList RepeatColumns="5" ID="DLChinese" Visible="false" runat="server" CellPadding="0" CellSpacing="40" ItemStyle-HorizontalAlign="left">
        <ItemTemplate>
            <span style="display:none; cursor:hand; font-size:14.0pt; font-weight:bold; text-align:left;"  id='spn<%#DataBinder.Eval(Container.DataItem, "Word")%>1'><%#DataBinder.Eval(Container.DataItem, "Word")%></span> 
            <apan style="cursor:hand;" id='spn<%#DataBinder.Eval(Container.DataItem, "Word")%>2'><%#DataBinder.Eval(Container.DataItem, "Chinese")%>
            <asp:TextBox runat="server" ID="txtInput" /></span>
        </ItemTemplate>
        <ItemStyle HorizontalAlign="Left" />
    </asp:DataList>我想让用户在点击“完成测试”按钮后,比较用户输入框中输入的内容(与Word字段比较),如果一致,就在DataList中显示英文,如果不一致,仍然显示上面这样的中文和文本框,要怎么写呢?完成测试按钮;
    Protected Sub BtnEndTest_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim I As Integer
        For I = 0 To DLChinese.Items.Count - 1
            Dim txt As TextBox = CType(DLChinese.Items.Item(I).FindControl("txtInput"), TextBox)
这里要怎么写,才能比较文本框的内容和绑定字段“Word”的值?
又怎么能让正确的变成显示英文?
        Next
    End Sub未完成的代码放在这里:
http://www.dnssjy.com/english/test.aspx?Unit=15
接下来要怎么实现上面的功能?

解决方案 »

  1.   

    把相关的因为翻译在后台用viewstate保存起来,然后去遍历页面的TextBox控件对应的值。然后根据遍历的索引去去viewsate保存的英文数组里面比较就好了
      

  2.   

    那比较后,怎么让DataList分别根据“对”或“错”在Item中分显示(中文+输入框)和 英文 两种情况呢?
      

  3.   

    如果是我做这个东西的话,我会用前端技术来实现。
    把这个英文,英文的中文解释,单词的类型,通过后台数据拼装成一串JSON数据,输出在页面的javascipt代码段中。根据这个JSON数据来判断。
      

  4.   


    http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.datalist.itemdatabound(VS.80).aspx
      

  5.   

    这个也好办,把测试过后的记录在前端记录下拼装来成JSON,再发回给服务端。如可以有个隐藏input控件,记录下来,<input type='hidden' id='test' name='test'/>
    在服务器端Request.From["test"]即可。