__doPostBack在GridView DropDownList中不起作用

时间:2014-09-15 10:53:23

标签: c# javascript asp.net gridview

作为主题,我有一个项目模板而不是下拉列表,当用户试图点击它时,警告应该出来警告用户是否继续。点击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
}

1 个答案:

答案 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
 }