Ситуация:
в ChildControls создается GridView, SQLDataSource - источник.
BoundFields - в качестве полей.
В событии RowUpdating не удается получить значения изменные в GridView.
Решение:
(взято тут
bloggingabout.net )
GridView_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView gv = (GridView)sender;
gv.EditIndex = e.NewEditIndex;
gv.DataBind();
}
GridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridView gv = (GridView)sender;
for (int i = 0; i < gv.Columns.Count; i++)
{
DataControlFieldCell cell = gv.Rows[e.RowIndex].Cells[i] as DataControlFieldCell;
gv.Columns[i].ExtractValuesFromCell(e.NewValues, cell, DataControlRowState.Edit, true);
}
// Использовать новое значение
Double NewPrice = Convert.ToDouble(e.NewValues["Price"]);
}
понедельник, 18 августа 2008 г.
четверг, 14 августа 2008 г.
Вывод отладочной информации в SharePoint
ссылка на оргинал http://www.compurama.ru/2007/11/13/vyvod-otladochnoj-informacii-v-sharepoint/
Для того, чтобы SharePoint выводил вместо обобщенного сообщения об ошибке (типа Unknown Error) полноценную отладочную информацию, необходимо выполнить следующие действия:
- На веб-сервере, где установлен SharePoint, перейти в папку Диск:\Inetpub\wwwroot\wss\VirtualDirectories\[папка узла] (например 80).
- Открыть текстовым редактором (например, Notepad’ом) файл Web.config.
- Найти строку, содержащую слово “CallStack“. Изменить значение атрибута CallStack на “true“. Должна получиться строка следующего вида:
<SafeMode MaxControls="200" CallStack="true"
DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="false"> - Найти элемент “CustomErrors“. Установить значение атрибута mode в “off“:
<customErrors mode="Off" />
- Сохранить и закрыть файл. Перезапускать IIS при этом не требуется.
Теперь в случае возникновения ошибки будет выводиться полная трасса стека с указанием метода, сгенерировавшего исключение.
вторник, 12 августа 2008 г.
ConvertReaderToDataSet
public static DataSet ConvertReaderToDataSet(SqlDataReader reader)
{
try
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
for (int i = 0; i < reader.FieldCount; i++)
dt.Columns.Add(reader.GetName(i).ToString());
try
{
DataRow dr;
while (reader.Read())
{
dr = dt.NewRow();
for (int i = 0; i < reader.FieldCount; i++)
dr[reader.GetName(i)] = reader[i];
dt.Rows.Add(dr);
}
}
catch (Exception Exc)
{
throw new Exception(Exc.Message);
}
ds.Tables.Add(dt);
return ds;
}
catch(Exception Exc)
{
throw new Exception("ConvertReaderToDataSet: " + Exc.Message);
}
}
{
try
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
for (int i = 0; i < reader.FieldCount; i++)
dt.Columns.Add(reader.GetName(i).ToString());
try
{
DataRow dr;
while (reader.Read())
{
dr = dt.NewRow();
for (int i = 0; i < reader.FieldCount; i++)
dr[reader.GetName(i)] = reader[i];
dt.Rows.Add(dr);
}
}
catch (Exception Exc)
{
throw new Exception(Exc.Message);
}
ds.Tables.Add(dt);
return ds;
}
catch(Exception Exc)
{
throw new Exception("ConvertReaderToDataSet: " + Exc.Message);
}
}
Подписаться на:
Сообщения (Atom)