作为主题,我有一个项目模板而不是下拉列表,当用户试图点击它时,警告应该出来警告用户是否继续。点击OK后,没有任何反应,它不会回到回发
项目模板的gridview代码如下所示:
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:DropDownList ID="cboStatus" runat="server" AutoPostBack="True">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
我的代码背后会将JavaScript设置为属性
DropDownList cboStatus= (DropDownList)e.Row.FindControl("cboStatus");
cboStatus.Attributes.Add("onChange", "Confirmation();");
JavaScript:
function Confirmation() {
if (confirm('Are you sure you want to do this?')) {
__doPostback(this, 'Select${0}');
}
}
我希望我的回发能够调用此函数
protected void cboStatus_Click(object sender, EventArgs e)
{
//Some Code
}
答案 0 :(得分:0)
稍微更改您的代码。这已经在当地进行了测试,工作正常。如果点击确认窗口中的Ok
,则以下代码将启动服务器事件以进行选择更改。
您的gridview模板定义
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:DropDownList ID="cboStatus" runat="server" AutoPostBack="true" onchange="return Confirmation ();" OnSelectedIndexChanged="cboStatus_SelectedIndexChanged">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
onchange
事件的JavaScript函数
function Confirmation() {
if (confirm('Are you sure you want to do this?')) {
__doPostBack('__Page', '');
}
return false;
}
最后是SelectedIndexChanged
protected void cboStatus_SelectedIndexChanged(object sender, EventArgs e)
{
// Some code
}