DotNetNuke WebForm警报对话框

时间:2018-03-30 09:46:17

标签: c# asp.net dotnetnuke

我目前正在开发DotNetNuke模块。但是,在某些情况下,例如记录重复,我无法提示用户提供警告对话框。

我使用以下代码在Controller类中显示警告框。

EditForm edForm = new EditForm();
ScriptManager.RegisterClientScriptBlock(edForm, edForm.GetType(), "alertMessage", "alert('Record Inserted Successfully')", true);

以下是我的完整代码。

Form.ascx.cs

void cmdUpdate_Click(object sender, EventArgs e)
{
    UdtController.UpdateRow(Data, ModuleId, False);
}

UdtController.cs

public void UpdateRow(DataSet ds, int rowNr, bool isDataToImport)
{
    var values = new Dictionary<int, string>();
    string strIsUnique = "";
    foreach (DataRow field in ds.Tables[DataSetTableName.Fields].Rows)
    {
        var strColumnName = field[FieldsTableColumn.Title].ToString();
        strIsUnique = field[FieldsTableColumn.Searchable].ToString();

        var strValueColumn = ((!isDataToImport &&
                               ds.Tables[DataSetTableName.Data].Columns.Contains(strColumnName +
                                                                                 DataTableColumn.
                                                                                     Appendix_Original))
                                  ? strColumnName + DataTableColumn.Appendix_Original
                                  : strColumnName);


        if (strIsUnique == "True")
        {
            int uniqueDataCount = FieldController.uniqueData(currentRow[strValueColumn].AsString());

            if (uniqueDataCount == 0)
            {
                if (ds.Tables[DataSetTableName.Data].Columns.Contains(strValueColumn))
                {
                    values.Add(field[FieldsTableColumn.Id].AsInt(), currentRow[strValueColumn].AsString());
                }
            }
            else
            {
                EditForm edForm = new EditForm();
                ScriptManager.RegisterClientScriptBlock(edForm, edForm.GetType(), "alertMessage", "alert('Record Inserted Successfully')", true);
                break;
            }
        }
        else
        {
            if (ds.Tables[DataSetTableName.Data].Columns.Contains(strValueColumn))
            {
                values.Add(field[FieldsTableColumn.Id].AsInt(), currentRow[strValueColumn].AsString());
            }
        }
    }
    FieldController.UpdateData(userDefinedRowId, values);
}

1 个答案:

答案 0 :(得分:1)

您需要引用Page,而不是创建新表单。

Page page = HttpContext.Current.CurrentHandler as Page;   
ScriptManager.RegisterStartupScript(page, page.GetType(), "alertMessage", "alert('Record Inserted Successfully')", true);

然而,DNN有自己的消息框可以使用:

http://uxguide.dotnetnuke.com/UIPatterns/AlertDialog.html