我的应用程序中有以下代码我有一个gridview控件提供我的网格视图我有单选按钮定义为templetefield。
<asp:View ID="View3" runat="server">
<script type = "text/javascript">
function RadioCheck(rb) {
var gv = document.getElementById("<%=grdAllPartsRequestList.ClientID%>");
var rbs = gv.getElementsByTagName("input");
var row = rb.parentNode.parentNode;
for (var i = 0; i < rbs.length; i++) {
if (rbs[i].type == "radio") {
if (rbs[i].checked && rbs[i] != rb) {
rbs[i].checked = false;
break;
}
}
}
}
</script>
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="rbSelected" runat="server" AutoPostBack="True"
oncheckedchanged="rbSelected_CheckedChanged" GroupName="RequestSelection" onclick="RadioCheck(this);" />
<asp:HiddenField ID="HiddenField1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</<asp:View>
背后的代码.CS
protected void rbSelected_CheckedChanged(object sender, EventArgs e)
{
}
现在我的问题是当我点击事件没有触发的单选按钮时运行我的页面。 oncheckedchanged
没有被解雇。
令人惊讶的是,相同的功能在网格视图中的另一个页面中工作正常。
我在网上搜索了这个答案。但到目前为止还没有成功。我的主页面中有更新面板..我尝试使用UpdateMode="Always"
和ChildrenAsTriggers="true"
,但到目前为止没有任何问题请帮助!
答案 0 :(得分:0)
试试这个,
void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
Radiobutton rb = e.Row.FindControl("rbSelected") as Radiobutton;
rb.oncheckedchanged += this.rbSelected_CheckedChanged;
}
}
该事件将被添加到GridView的rowdatabound事件的radiobutton ...
希望这可以帮助你...