2011-09-16 96 views
1

我在我的项目中使用了struts 2 +显示标签和Struts jQuery插件。Displaytag最后一行的jquery对话框不能加载ajax

我在使用显示标签时遇到了一些问题。

这是我当前的标记:

<display:table style="width:100%" cellpadding="5" cellspacing="1" name="interviewAssList" class="dataTable" uid="interview" pagesize="5" sort="list" requestURI="getApplicantInterviewAssesment"> 

<display:column style="text-align: center;width:10%" title="Sr.No" > 
    <s:property value="#attr.interview_rowNum"/> 
</display:column> 

<display:column style="text-align: left" title="Application ID" 
    property="application.uniqueId" /> 

<display:column style="text-align: center" title="Name" 
    property="application.firstName" /> 

<display:column style="text-align: center" title="Birth Date" 
    property="application.dob" format="{0,date,dd/MM/yyyy}"/> 

<display:column style="text-align: center" title="Marks"> 
    <s:property value="#attr.interview.marksObtained"/> 
</display:column> 

<display:column style="text-align: center" title="Action" media="html" > 
    <sj:dialog 
     id="editdialog" 
     buttons="{ 
      'Clear':function() { clearButton(); }, 
      'Add':function() { addButton(); } 
      }" 
     autoOpen="false" 
     modal="true" 
     title="Add Marks" 
     href="%{ajax}" 
     width="450" 
    > 
    </sj:dialog> 
    <s:url id="ajax" value="/getApplicantDataInterviewAssesment.action?appId=%{#attr.interview.application.applicationId}"/> 
    <s:param name="appId" value="%{#attr.interview.application.applicationId}"></s:param> 
    <sj:a 
     openDialog="editdialog" 
     button="true" 
     buttonIcon="ui-icon-newwin" 
    > 
    Edit 
    </sj:a> 
</display:column> 

当上编辑一下,打开一个对话框,我可以编辑。但是,当点击最后一行时,没有加载任何Ajax内容。

在此先感谢。

+0

你能提供一些例子吗? – antyrat

+0

嗨你可以尝试任何displaytag和jquery示例问题在那里.. – Sanju

回答

1

我相信你知道Displaytag的列标记定义了一个对象在你的表的每一行(表格数据单元格,TD)中显示。通常,列标签引用集合中对象的属性。当列标签不是空标签时,将评估正文。

在您的示例中,您在列标签内指定了Struts jQuery标签。您将遇到的一个问题是,您对表的每一行都使用相同的ID(editdialog),并且此标记库的ID将成为HTML ID属性。我希望你遇到的问题是由于这个。

该标准规定了任何给定的ID名称只能在页面或文档中引用一次。 jQuery使用ID唯一性来定位文档的特定部分。你有多个相同名称的ID,所以你的jQuery会感到困惑并停止按预期工作。

你可以尝试_rowNum价值附加到您的editdialog ID的末端,以确保每个对话是在网页上是独一无二的。或者,你可以尝试有一个对话框(不包含在displaytag中),每个表的行被不同的调用引起不同的ajax调用 - 它可能更容易使用raw jQuery代替了Struts jQuery标签库。

+0

你好马克,感谢您的回答和有价值的投入,因为你在这里说,Id是不同的问题必须发生在任何行不只是n最后一行表,因为我曾经遇到这个问题,每一行都有自己的对话框,内容依赖于每一行的参数,它的工作正常,但最后一行在这里有一些问题。 – Sanju

+0

你能发布这个页面的生成源代码吗? –

+0

你需要哪种类型的源代码? .class文件 – Sanju

相关问题