Редирект по относительной ссылке.
Панда WTF !?
ect0plasm
Response.Redirect(ResolveUrl("~/Default.aspx"));
Tags:

Изменения размера картинки.
Панда WTF !?
ect0plasm

Предлагаю след. метод для уменьшения размеров загружаемых на сайт картинок.

public static byte[] getResizeJPG(byte[] image, int maxWidth, int maxHeight)

{

      Image oImg = Image.FromStream(new MemoryStream(image));

 

      int resizeWidth = 0;

      int resizeHeight = 0;

 

      if (oImg.Height > oImg.Width)

      {

            resizeHeight = maxHeight;

            resizeWidth = resizeHeight * oImg.Width / oImg.Height;

      }

      else

      {

            resizeWidth = maxWidth;

            resizeHeight = resizeWidth * oImg.Height / oImg.Width;

      }

 

      Bitmap resizeBitmap = new Bitmap(resizeWidth, resizeHeight, PixelFormat.Format24bppRgb);

      resizeBitmap.SetResolution(72, 72);

 

      Graphics resizeGraphics = Graphics.FromImage(resizeBitmap);

      resizeGraphics.SmoothingMode = SmoothingMode.AntiAlias;

      resizeGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic;

      resizeGraphics.PixelOffsetMode = PixelOffsetMode.HighQuality;

 

      resizeGraphics.DrawImage(oImg, new Rectangle(0, 0, resizeWidth, resizeHeight), 0, 0, oImg.Width, oImg.Height, GraphicsUnit.Pixel);

 

      MemoryStream mm = new MemoryStream();

      resizeBitmap.Save(mm, System.Drawing.Imaging.ImageFormat.Jpeg);

           

      oImg.Dispose();

      resizeBitmap.Dispose();

      resizeGraphics.Dispose();

                 

      return mm.GetBuffer();

}


Реализация событий в пользовательском элементе управления.
Панда WTF !?
ect0plasm

Допусти в вашем элементе управления есть кнопка и нужно из страницы на которой находится данный Control отследить клик по этой кнопки.

 

 

В коде вашего Контрола добавляете след.

 

public event EventHandler EduInstCancel;

 

protected void CancelButton_Click(object sender, EventArgs e)

{

EduInstCancel(this, e);

}

 

В коде страницы пишем след.

 

protected void Page_Load(object sender, EventArgs e)

{

SelEduInst1.EduInstCancel += new EventHandler(SelEduInst1_EduInstCancel);

}

 

private void SelEduInst1_EduInstCancel(object sender, EventArgs e)

{

MainFormPanel.Visible = true;

SelEduInstPanel.Visible = false;

}

 

Данный пример передает событие клика по кнопке CancelButton_Click пользовательского элемента управления в страницу на которой размещается он.


Программное отключение кеширования.
Панда WTF !?
ect0plasm

Иногда для возникает необходимость запретить браузеру кешировать страницы. Например когда вы находитесь в закрытой авторизацией части сайта.

 

Предлагаю следующий подход:

В файле Global.asax добавить следующий код.


void Application_PreSendRequestHeaders (object sender, EventArgs e)

{

Response.Cache.SetAllowResponseInBrowserHistory(false);

Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);

}


Как программно красиво оформить title.
Панда WTF !?
ect0plasm
Как программно красиво оформить title.

Для этого в файле web.config создадим  параметр SiteName

<appSettings>

    <add key="SiteName" value="Центр трудоустройства"/>

В файлах aspx указываем параметр Title

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ResumeAdd.aspx.cs" Inherits="ResumeAdd" Title="Добавить резюме" %>

В файле MasterPage.master.cs в событие PageLoad добавим след. Код

protected void Page_Load(object sender, EventArgs e)

{

Page.Title = String.Format("{0} - {1}", ConfigurationManager.AppSettings["SiteName"], Page.Title);

}

Подсчет итогового значения по колонке в таблице GridView
Панда WTF !?
ect0plasm
Для подсчета итогового значения по колонке я предлагаю следующий подход.

 

<%/* Создаем грид. Связываем его с BalanceObjectDataSource, указываем отображение футера и убираем автогенерацию колонок. Указываем событие OnRowDataBound. */%>

<asp:GridView ID="BalanceGridView" runat="server" AutoGenerateColumns="False" DataSourceID="BalanceObjectDataSource" OnRowDataBound="BalanceGridView_RowDataBound" ShowFooter="True" Width="100%">

<Columns>

<asp:BoundField DataField="ВидОплаты" HeaderText="Вид оплаты" HtmlEncode="False" />

<asp:BoundField DataField="СуммаВРублях" HeaderText="Сумма в рублях" HtmlEncode="False" >

<ItemStyle HorizontalAlign="Right" />

</asp:BoundField>

</asp:GridView>

<%/* В ObjectDataSource вызываем метод GetBalance класса SomeClass пространства имен BLL */%>

<asp:ObjectDataSource ID="BalanceObjectDataSource" runat="server" SelectMethod="GetBalance" TypeName="BLL.SomeClass"></asp:ObjectDataSource>

 

 

 

 

public partial class SomeBalance : System.Web.UI.Page

{

decimal суммаВРубляхИтого = 0;

protected void BalanceGridView_RowDataBound(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.DataRow)

{

суммаВРубляхИтого += (decimal)((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[1];

 

string видОплаты = (string)((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[0];

if ("Переплата" == видОплаты)

{

//Если переплата то можно выделить цветом

e.Row.BackColor = Color.LightBlue;

}

}

else if (e.Row.RowType == DataControlRowType.Footer)

{

e.Row.Cells[0].Text = "Итого:";

e.Row.Cells[1].Text = суммаВРубляхИтого.ToString();

//Итоговую строку выделим жирным текстом и сделаем align right

e.Row.HorizontalAlign = HorizontalAlign.Right;

e.Row.Font.Bold = true;

}

}

}


Как изменить атрибут в элементе управления HTML который находится в MasterPage.
Панда WTF !?
ect0plasm
Например нам надо программно установить параметр onload в теге body.

 

//В файле MasterPage.master

<body id="MasterPageBody" runat="server">

 

//В файле SomePage.aspx.cs

public partial class SomePage : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

HtmlGenericControl body =

(HtmlGenericControl)Master.FindControl("MasterPageBody");

body.Attributes.Add("onload", "Function1()");

}

}


Как программно подключить js скрипт.
Панда WTF !?
ect0plasm

Для программного подключения JS скриптов я использую следующий подход.


protected void Page_Load(object sender, EventArgs e)

{

string scriptAttach = String.Format("<script type=\"text/javascript\" src=\"{0}JsHttpRequest.js\"></script>", MasterPage.JSDir);

Page.RegisterClientScriptBlock("JsHttpRequest", scriptAttach);

}


Проверка
Я
ect0plasm


<
asp:Repeater ID="ListRepeater" runat="server" OnItemDataBound="ListRepeater_ItemDataBound">

<ItemTemplate>

<table>

<tr><td>Пол:</td><td>

<%# Eval("Пол.Value")%>

</td></tr>

<tr><td>Возраст:</td><td>

<%# Helpers.BirthdayDateToAge(DateTime.Parse((string)Eval("ДеньРождения"))).ToString()%>

</td></tr>

</table>

</ItemTemplate>

</asp:Repeater>

 

 

?

Log in