我将以下代码添加到转发器中......
<input type="image" style="border-width:0" alt="Edit Reviewer Group"
title="Edit Reviewer Group" tabindex="0"
src='<%=ResolveUrl("~/css/images/icon_edit.png") %>'
onclick='showNewRevewerGroupModalPanelNew(<%#DataBinder.Eval(Container.DataItem,"Id")%>,
<%#HttpUtility.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "Name"))%>);
return false;' />
在上面添加之后......编辑按钮不再显示弹出框...我将其分隔到“名称”列。在showNewRevewerGroupModalPanelNew调用中包含Name列后,当在转发器行中按下编辑图标时,模式弹出窗口被触发....感谢您的帮助!
function showNewRevewerGroupModalPanelNew(Id, Name)
{
alert(Id);
//$find('RevListModalPopupBehavior').show();
}
</script>
<asp:Repeater ID="rptReviewerList" runat="server" OnItemCommand="_Command">
<HeaderTemplate>
<ul class="standardList">
<li class="listHeader">
<p class="revListTitle">Name</p>
<p class="number">Number of Reviewers</p>
<p class="date">Last Modified</p>
<p class="edit"> </p>
</li>
</HeaderTemplate>
<ItemTemplate>
<li <%#Container.ItemIndex%2==0? "class='bg1'" : "" %>>
<p class="revListTitle"><%#HttpUtility.HtmlEncode((string)DataBinder.Eval(Container.DataItem,"Name"))%></p>
<p class="number"><%#DataBinder.Eval(Container.DataItem,"ReviewerCount")%></p>
<p class="date"><%#String.Format("{0:d}",DataBinder.Eval(Container.DataItem, "Modified"))%></p>
<p class="edit">
<asp:ImageButton ID="imgBtnUpdate" runat="server" ImageUrl="~/css/images/icon_update.png"
Tooltip="Update Reviewer List" AlternateText="Update Reviewer List"
CommandName="UpdateRevList"
CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Id") %>'/>
<input type="image" style="border-width:0" alt="Edit Reviewer Group"
title="Edit Reviewer Group" tabindex="0"
src='<%=ResolveUrl("~/css/images/icon_edit.png") %>'
onclick='showNewRevewerGroupModalPanelNew(<%#DataBinder.Eval(Container.DataItem,"Id")%>,
<%#HttpUtility.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "Name"))%>);
return false;' />
<asp:ImageButton ID="imgBtDelete" runat="server" ImageUrl="~/css/images/icon_remove.png" Tooltip="Remove Reviewer List" AlternateText="Remove Reviewer List" CommandName="DeleteRevList" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Id")%>' />
<cc1:ConfirmButtonExtender ID="cbxDelete" runat="server" TargetControlID="imgBtDelete" ConfirmText='<%# makeDeleteText(DataBinder.Eval(Container.DataItem, "Name").ToString()) %>'/>
</p>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="ibtOK"/>
<asp:PostBackTrigger ControlID="importBtn"/>
<asp:PostBackTrigger ControlID="editBtn"/>
</Triggers>
</asp:UpdatePanel>
这是Firebug告诉我的内容ReferenceError:“ABCD”未定义。但ABCD是转发器行中“名称”的值。转发器中输入块的运行时间值为:
<input type="image" style="border-width:0" alt="Edit Reviewer Group"
title="Edit Reviewer Group" tabindex="0"
src='/css/images/icon_edit.png'
onclick='showNewRevewerGroupModalPanelNew(4,
ABCD);
return false;' />
答案 0 :(得分:0)
鉴于您指出的错误,我会说您的.Net代码正在转储“Name”变量而没有任何类型的引号来表明它是一个字符串,因此javascript将其解释为变量名称。
onclick='showNewRevewerGroupModalPanelNew(
<%#DataBinder.Eval(Container.DataItem,"Id")%>,
<%#HttpUtility.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "Name"))%>);
return false;' />
此代码可能正在评估
onclick='ShowNewRevewerGroupModalPanelNew(someId, someName); return false;'
您要做的是更改外部的引号并在内部添加单曲:
onclick="showNewRevewerGroupModalPanelNew(
<%#DataBinder.Eval(Container.DataItem,"Id")%>,
'<%#HttpUtility.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "Name"))%>');
return false;" />
这应该会产生更接近的东西:
onclick="ShowNewRevewerGroupModalPanelNew(someId, 'someName'); return false;"
当您尝试用双引号括起数据绑定时,<。> .Net会抱怨。