【发布时间】:2012-04-03 22:50:02
【问题描述】:
我遇到了一个问题,即 radgrid 中的按钮直到第二次才触发。
我有一个用户控件,上面有一个 radgrid,其中一个列中有按钮。 用户控件放置在页面上。
当点击 radgrid 上的按钮时,第一次没有任何反应,但第二次可以正常工作。
这是 radgrid 列的一些数据
<telerik:GridTemplateColumn DataField="Quantity" HeaderText="Quantity" UniqueName="QuantityCol">
<ItemTemplate>
<asp:TextBox ID="Quantity" runat="server" Columns="4" Text='<%# DataBinder.Eval(Container.DataItem, "Quantity") %>' width="40px" />
<asp:LinkButton id='btnUpdateRow' runat="server" CausesValidation="false" Text='<span>Update</span>' CommandName="ButtonUpdateRow" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'/>
</ItemTemplate>
</telerik:GridTemplateColumn>
radgrid 使用 NeedDataSource 获取其数据。 页面加载不执行任何操作。
在 itemcreated/itemdatabound 中调试期间,它显示的链接按钮 clientid
TestBasket_RadGrid1_ctl01_ctl04_btnUpdateRow
但是,当呈现给浏览器时,它显示为
<a id="TestBasket_RadGrid1_ctl01_ctl09_btnUpdateRow" href="javascript:__doPostBack('TestBasket$RadGrid1$ctl01$ctl09$btnUpdateRow','')">
单击按钮 - itemcommand 不会被触发。 从回发返回时,浏览器显示
<a id="TestBasket_RadGrid1_ctl01_ctl04_btnUpdateRow" href="javascript:__doPostBack('TestBasket$RadGrid1$ctl01$ctl04$btnUpdateRow','')">
单击按钮 - itemcommand 被触发。
任何人都可以解释为什么 clientid 会更改。 我已经尝试放置一个占位符并在 itemcreated 中创建带有 id 的控件 - 仍然是同样的问题。
提前感谢您的帮助。
【问题讨论】: