DotNetNuke WebForm 警报对话框

DotNetNuke WebForm Alert Dialog box

我目前正在开发 DotNetNuke 模块。但是,在记录重复等某些情况下,我未能提示用户一个警告对话框。

我正在使用以下代码在控制器中显示警告框 class。

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);
}

您需要引用 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