0. Используйте сеанс, чтобы определить, следует ли входить в систему
, если (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('вы уверены? .. .?')){вернуть истину;}else{вернуть ложь;}")
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:yyyy-MM-dd}"
Я думаю, это должно быть в событии привязки элемента
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("Произошла неизвестная ошибка.");
}
Публичное AppException (строковое сообщение)
{
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;
</script>
onkeydown="if(event.keyCode==13) event.keyCode=9"
http://dotnet.aspx.cc/exam/enter2tab.aspx
14. Столбец суперсоединения DataGrid.
DataNavigateUrlField="Имя поля" DataNavigateUrlFormatString=" http://xx/inc/delete.aspx?ID={0 }"
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>
Внутренний код
защищен недействительным 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}")%>
int i=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})))?$
B. Следующий правильный формат ввода: [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(string);
HttpUtility.HtmlDecode(string)
19. Как установить глобальные переменные
В событии Application_Start()
в Global.asax
добавьте Application[имя атрибута] = xxx;
это ваша глобальная переменная.
20. Как щелкнуть соединение, чтобы открыть новое окно после соединения, созданного HyperLinkColumn?
HyperLinkColumn имеет атрибут Target, просто установите значение «_blank». (Target="_blank")
[ASPNETMENU] Нажмите на элемент меню, чтобы открыть новое окно. Добавьте URLTarget="_blank" к пункту меню в вашем менюData. 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. Делегировать обсуждение.
http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191
http://dev.csdn.net/develop/article/22/22951.shtm
22. Прочтите значение текстового поля элемента управления 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="Amount">
<Шаблон элемента>
<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;
var p = txts[txts.length-2].value,
если (isNaN(q) || isNaN(p))
возврат
q = parseInt (д);
p = parseFloat(p);
txts[txts.length-1].value = (q * p).toFixed(2);
}
</скрипт>
24. Когда для сравнения выбираются строки внизу таблицы данных, почему она всегда обновляется, а затем прокручивается вверх. Только что выбранные строки не видны из-за экрана.
страница_загрузка
page.smartNavigation=true
Как
управлять размером текстового поля?
{
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
);
http://www.cnblogs.com/robber/archive/2007/01/09/615835.html