0. Используйте сеанс, чтобы определить, стоит ли входить в систему.
if(Session["login"] == null)
{
Response.Redirect("error.aspx");
}
1. Откройте новое окно и передайте параметры:
Параметры передачи:
response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")
Получить параметры:
строка a = Request.QueryString("id");
строка b = Request.QueryString("id1");
2. Добавьте к кнопке диалоговое окно
Button1.Attributes.Add("onclick","return submit('Confirm?')");
button.attributes.add("onclick","if(confirm('вы уверены...?')){возвращаем true;}else{возвращаем false;}")
3. Удалить выбранные записи в таблице.
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "УДАЛЕНИЕ из сотрудника, где emp_id = " + intEmpID.ToString()
4. Удалить предупреждение о записи формы.
частная пустота DataGrid_ItemCreated (отправитель объекта, DataGridItemEventArgs e)
{
переключатель (e.Item.ItemType)
{
случай ListItemType.Item:
случай ListItemType.AlternatingItem:
случай ListItemType.EditItem:
TableCell myTableCell;
myTableCell = e.Item.Cells[14];
LinkButton myDeleteButton;
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick","return submit('Вы уверены, что хотите удалить это сообщение');");
перерыв;
по умолчанию:
перерыв;
}
}
5. Щелкните строку таблицы, чтобы перейти на другую страницу.
Private void grdCustomer_ItemDataBound (отправитель объекта, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//Нажмите на форму, чтобы открыть
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
e.Item.Attributes.Add("onclick","window.open('Default.aspx?id=" + e.Item.Cells[0].Text + "');");
}
Дважды щелкните таблицу, чтобы подключиться к другой странице в событии itemDataBind.
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
строка OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'");
}
Дважды щелкните таблицу, чтобы открыть новую страницу.
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
строка OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')");
}
★Особое примечание: [?id=] не может быть [?id =]
6. Передача параметров в столбцы гиперссылок таблицы.
<asp:HyperLinkColumn Target="_blank" headertext="ID номер" DataTextField="id" NavigateUrl="aaa.aspx?id='<%# DataBinder.Eval(Container.DataItem, "Поле данных 1")%>' & name='<%# DataBinder.Eval(Container.DataItem, "Поле данных 2")%>' />
7. Нажмите на стол, чтобы изменить цвет.
if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onclick","this.style.backgroundColor='#99cc00';this.style.color='buttontext';this.style.cursor='default';");
}
Написано в _ItemDataBound DataGrid.
if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#99cc00';this.style.color='buttontext';
this.style.cursor='default';");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='';this.style.color='';");
}
8. О формате даты
Настройка формата даты
DataFormatString="{0:гггг-ММ-дд}"
Я думаю, это должно быть в событии itembound
e.items.cell["ваш столбец".].text=DateTime.Parse(e.items.cell["ваш столбец"].text.ToString("гггг-ММ-дд"))
9. Чтобы получить информацию об ошибке и перейти на указанную страницу, не используйте Response.Redirect, а используйте Server.Transfer.
например
// в global.asax
protected void Application_Error (отправитель объекта, EventArgs e) {
если (Server.GetLastError() — это HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");
//Можно оставить остальные исключения, отличные от HttpUnhandledException, самому ASP.NET :)
}
Перенаправление приведет к созданию обратной передачи и потере информации об ошибках, поэтому руководство по странице должно выполняться непосредственно на стороне сервера, чтобы информацию об ошибках можно было получить на странице обработки ошибок и обработать соответствующим образом.
10.Очистить файлы cookie
Cookie.Expires=[DateTime];
Response.Cookies("ИмяПользователя").Expires = 0
11. Пользовательская обработка исключений
//Пользовательский класс обработки исключений
использование системы;
использование System.Diagnostics;
пространство имен MyAppException
{
/// <сводка>
/// Класс обработки исключений приложения, унаследованный от класса системных исключений ApplicationException.
/// Автоматически записывать содержимое исключений в журнал приложений Windows NT/2000
/// </сводка>
общедоступный класс AppException:System.ApplicationException
{
publicAppException()
{
если (ApplicationConfiguration.EventLogEnabled)
LogEvent("Произошла неизвестная ошибка.");
}
publicAppException (строковое сообщение)
{
LogEvent (сообщение);
}
public AppException (строковое сообщение, исключение InternalException)
{
LogEvent (сообщение);
если (внутреннее исключение! = ноль)
{
LogEvent(innerException.Message);
}
}
//Класс ведения журнала
использование системы;
использование System.Configuration;
использование System.Diagnostics;
использование System.IO;
использование System.Text;
использование System.Threading;
пространство имен MyEventLog
{
/// <сводка>
/// Класс регистрации событий, обеспечивающий поддержку регистрации событий
/// <примечания>
/// Определяет 4 метода регистрации (ошибка, предупреждение, информация, трассировка)
/// </примечания>
/// </сводка>
публичный класс ApplicationLog
{
/// <сводка>
/// Запись информации об ошибках в журнал событий Win2000/NT
/// <param name="message">Текстовая информация для записи</param>
/// </сводка>
public static void WriteError (строковое сообщение)
{
WriteLog(TraceLevel.Error, сообщение);
}
/// <сводка>
/// Запись информации о предупреждениях в журнал событий Win2000/NT
/// <param name="message">Текстовая информация для записи</param>
/// </сводка>
public static void WriteWarning (строковое сообщение)
{
WriteLog(TraceLevel.Warning, сообщение);
}
/// <сводка>
/// Запишите информацию о подсказке в журнал событий Win2000/NT.
/// <param name="message">Текстовая информация для записи</param>
/// </сводка>
public static void WriteInfo (строковое сообщение)
{
WriteLog(TraceLevel.Info, сообщение);
}
/// <сводка>
/// Запись информации трассировки в журнал событий Win2000/NT
/// <param name="message">Текстовая информация для записи</param>
/// </сводка>
public static void WriteTrace (строковое сообщение)
{
WriteLog(TraceLevel.Verbose, сообщение);
}
/// <сводка>
/// Форматируем формат текстовой информации, записываемой в журнал событий
/// <param name="ex">Объект исключения, который необходимо отформатировать</param>
/// <param name="catchInfo">Строка заголовка информации об исключении.</param>
/// <ретзначение>
/// <para>Отформатированная строка информации об исключении, включая содержимое исключения и стек трассировки.</para>
/// </retvalue>
/// </сводка>
public static String FormatException (исключение ex, String catchInfo)
{
StringBuilder strBuilder = новый StringBuilder();
если (catchInfo != String.Empty)
{
strBuilder.Append(catchInfo).Append("rn");
}
strBuilder.Append(ex.Message).Append("rn").Append(ex.StackTrace);
вернуть strBuilder.ToString();
}
/// <сводка>
/// Фактический метод записи журнала событий
/// <param name="level">Уровень записываемой информации (ошибка, предупреждение, информация, трассировка).</param>
/// <param name="messageText">Текст для записи.</param>
/// </сводка>
Private static void WriteLog (уровень TraceLevel, String messageText)
{
пытаться
{
ТипСобытияЛогEntryType;
переключатель (уровень)
{
случай TraceLevel.Error:
ТипЖурнала = ТипВходаСобытия.Ошибка;
перерыв;
случай TraceLevel.Предупреждение:
ТипЖурнала = ТипВходаСобытия.Предупреждение;
перерыв;
случай TraceLevel.Info:
ТипЖурнала = ТипВходаСобытия.Информация;
перерыв;
случай TraceLevel.Verbose:
ТипЖурнала = ТипВходаЛог.УспехАудит;
перерыв;
по умолчанию:
ТипЖурнала = ТипВходаЛог.УспехАудит;
перерыв;
}
EventLog eventLog = новый EventLog («Приложение», ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName);
// записываем журнал событий
eventLog.WriteEntry(messageText, LogEntryType);
}
catch {} // Игнорируем любые исключения
}
} //класс ApplicationLog
}
12.Панель прокручивается по горизонтали и автоматически расширяется по вертикали.
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>
13. Преобразовать Enter в Tab
<script Language="javascript" for="document" event="onkeydown">
if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!=' '&& event.srcElement.type!='textarea');
event.keyCode=9;
</скрипт>
onkeydown="if(event.keyCode==13) event.keyCode=9"
14. Столбец суперсоединения DataGrid.
DataNavigateUrlField="Имя поля" DataNavigateUrlFormatString="}"
15. Строки DataGrid меняют цвет с помощью мыши.
Private void DGzf_ItemDataBound (отправитель объекта, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
если (e.Item.ItemType!=ListItemType.Header)
{
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=""+e.Item.Style["BACKGROUND-COLOR"]+""");
e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=""+ "#EFF3F7"+""");
}
}
16. Столбец шаблона
<ASP:TEMPLATECOLUMN видимый="False" sortexpression="demo" headertext="ID">
<ШАБЛОН ЭЛЕМЕНТА>
<ASP:LABEL text='<%# DataBinder.Eval(Container.DataItem, "ArticleID")%>' runat="server" width="80%" id="lblColumn" />
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN headertext="проверка">
<HEADERSTYLE Wrap="False" Horizontalign="Center"></HEADERSTYLE>
<ШАБЛОН ЭЛЕМЕНТА>
<ASP:CHECKBOX id="chkExport" runat="server" />
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<ASP:CHECKBOX id="chkExportON" runat="server" Enabled="true" />
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
код позади
protected void CheckAll_CheckedChanged(отправитель объекта, System.EventArgs e)
{
//Изменить выбор столбцов, чтобы выбрать все или ничего.
Флажок chkExport;
если(ПроверитьВсе.Проверено)
{
foreach(DataGridItem oDataGridItem в MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Проверено = правда;
}
}
еще
{
foreach(DataGridItem oDataGridItem в MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Проверено = ложь;
}
}
}
17. Форматирование чисел [Результат <%#Container.DataItem("price")%> равен 500,0000, как отформатировать его до 500,00?]
<%#Container.DataItem("price","{0:¥#,##0.00}")%>
интервал я = 123456;
string s=i.ToString("###,###.00");
18.Форматирование даты
[На странице aspx: <%# DataBinder.Eval(Container.DataItem, "Company_Ureg_Date")%>
Отображается как: 2004-8-11 19:44:28
Я просто хочу: 2004-8-11】
<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-Md}")%>
Как его следует изменить?
[Формат даты]
Вынь это, обычно возражаешь
((DateTime)objectFromDB).ToString("гггг-ММ-дд");
[Выражение проверки даты]
A. Следующий правильный формат ввода: [2004-2-29], [2004-02-29 22:29:39], [2004/12/31]
^((d{2}(([02468][048])|([13579][26]))[-/s]?((((0?[13578])|(1[ 02]))[-/s]?((0?[1-9])|([1-2][0-9])|
(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][ 0-9])|(30)))|(0?2[-/s]?((0?[1-9])|([1-2][0-9]))) ))
|(d{2}(([02468][1235679])|([13579][01345789]))[-/s]?((((0?[13578])|(1[02 ]))[-/s]?((0?[1-9])|([1-2][0-9])
|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2] [0-9])|(30)))|(0?2[-/s]?((0?[1-9])|(1[0-9])|(2[0 -8]))))))(s(((0?[1-9])|(1[0-2])):([0-5][0-9])(( s)|(:([0-5][0-9])s))([AM|PM|am|pm]{2,2})))?$
Б. Следующий правильный формат ввода: [0001-12-31], [9999 09 30], [2002/03/03]
^d{4}[-/s]?((((0[13578])|(1[02]))[-/s]?(([0-2][0 -9])|(3[01])))|(((0[469])|(11))[-/s]?(([0-2][0-9])| (30)))|(02[-/s]?[0-2][0-9]))$
[Преобразование корпуса]
HttpUtility.HtmlEncode(строка);
HttpUtility.HtmlDecode(строка)
19. Как установить глобальные переменные
Global.asax
В событии Application_Start()
Добавить приложение[имя свойства] = xxx;
Это ваша глобальная переменная
20. Как открыть новое окно после нажатия на соединение, созданное HyperLinkColumn?
HyperLinkColumn имеет атрибут Target, просто установите значение «_blank» (Target="_blank»).
[ASPNETMENU] Щелкните элемент меню, чтобы открыть новое окно. Добавьте URLTarget="_blank" к элементу меню в файле MenuData.xml.
нравиться:
<?xml version="1.0"coding="GB2312"?>
<MenuData ImagesBaseURL="images/">
<МенюГруппа>
<MenuItem Label="Информация о внутренних параметрах" URL="Infomation.aspx" >
<MenuGroup ID="BBC">
<MenuItem Label="Информация об объявлении" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>
<MenuItem Label="Подготовить информационный брифинг" URL="NewInfo.aspx" LeftIcon="file.gif" />
...
Лучше всего обновить aspnetmenu до версии 1.2.
21. Обсуждение комиссии
22. Считайте значение TextBox элемента управления DataGrid.
foreach (DataGrid dgi в yourDataGrid.Items)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
tb.Текст....
}
23. В DataGrid есть три столбца шаблона, которые содержат текстовые поля: DG_ShuLiang (количество), DG_DanJian (цена за единицу) и DG_JinE (сумма). Они находятся в столбце 5.6.7. Требуется автоматически рассчитать сумму при вводе. количество и цена за единицу, то есть: количество * цена за единицу = Сумма также должна быть ограничена числовыми значениями при вводе. Как я могу использовать клиентский скрипт для реализации этой функции?
〖Думаю о возвращении〗
<asp:TemplateColumn HeaderText="Количество">
<Шаблон элемента>
<asp:TextBox id="ShuLiang" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>'
onkeyup="javascript:DoCal()"
/>
<asp:RegularExpressionValidator id="revS" runat="server" ControlToValidate="ShuLiang" ErrorMessage="должно быть целым числом" ValidationExpression="^d+$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Цена за единицу">
<Шаблон элемента>
<asp:TextBox id="DanJian" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>'
onkeyup="javascript:DoCal()"
/>
<asp:RegularExpressionValidator id="revS2" runat="server" ControlToValidate="DanJian" ErrorMessage="должно быть числовым" ValidationExpression="^d+(.d*)?$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Сумма">
<Шаблон элемента>
<asp:TextBox id="JinE" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
</ItemTemplate>
</asp:TemplateColumn>
<script Language="JavaScript">
функцияDoCal()
{
вар е = event.srcElement;
вар строка = e.parentNode.parentNode;
var txts = row.all.tags("INPUT");
if (!txts.length || txts.length < 3)
возвращаться;
вар q = txts[txts.length-3].value;
вар p = txts[txts.length-2].value;
если (isNaN(q) || isNaN(p))
возвращаться;
д = parseInt(д);
р = parseFloat(р);
txts[txts.length-1].value = (q * p).toFixed(2);
}
</скрипт>
24. Когда для сравнения выбираются строки внизу таблицы данных, почему она всегда обновляется, а затем прокручивается вверх. Только что выбранные строки не видны из-за экрана.
страница_загрузка
page.smartNavigation=истина
25. При изменении данных в Datagrid при нажатии клавиши редактирования данные появляются в текстовом поле. Как управлять размером текстового поля?
частная пустота DataGrid1_ItemDataBound (отправитель объекта, DataGridItemEventArgs e)
{
for(int i=0;i<e.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells.Attributes.Add("Ширина", "80px")
}
}
26. Диалоговое окно
частная статическая строка ScriptBegin = "<script Language="JavaScript">";
частная статическая строка ScriptEnd = "</script>";
public static void ConfirmMessageBox(string PageTarget,string Content)
{
string ConfirmContent="var retvalue="/blog/window.confirm('"+Content+"');"+"if(retValue){window.location="'"+PageTarget+"';}";
ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;
Параметр страницыСтраница = (Страница)System.Web.HttpContext.Current.Handler;
ПараметрPage.RegisterStartupScript("подтвердить",ConfirmContent);
//Response.Write(strScript);