我有下面的代码。执行链接按钮 showVlaues javascript 函数的 onClientClick 事件。我试图在调试模式下跟踪代码,当我单击链接按钮时,调试器控件被转移到 showvalues 函数,然后它转到后面的代码并转到应用程序的页面加载事件,然后它又去了到 showvalues 函数,我不知道为什么会这样,但是在调试模式下,我可以看到它同时进入 $get 行,当我试图查看 dataitems 的值时,它 dataitems 没有在当前上下文中定义它会改变 showValues 的值。他们有什么办法可以避免控制不再进入显示值功能。当我单击链接按钮时,我希望它只执行一次。
任何帮助将不胜感激。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function showValues(IDValue, timeValue, minValue){
var dataItems = $get('<%= PanelBar1.Items[0].Items[0].FindControl ("Grid_IDPicker").ClientID %>')
var lbl_ID = $get('<%= PanelBar1.Items[0].Items[0].FindControl("lbl_ID").ClientID %>');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
EmptyDataText="There are no data records to display.">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" SortExpression="id" />
<asp:BoundField DataField="time" HeaderText="time" SortExpression="time" />
<asp:BoundField DataField="min" HeaderText="min" SortExpression="min" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkClick" OnClientClick='<%#String.Format("return showValues({0},'{1}','{2}')", Eval("id"),Eval("time"),Eval("min")) %>' runat="server"> <%# Eval("id") %></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDBConnectionString1 %>"
ProviderName="<%$ ConnectionStrings:TestDBConnectionString1.ProviderName %>"
SelectCommand="SELECT [id], [time], [min] FROM [name]"></asp:SqlDataSource>
</form>
</body>
</html>