Открыть файл по двойному клику в реестре

Как реализовать сабж? Понятно, что надо на событие двойного клика грида вешаться.....
А дальше..... Хочется как то попроще.....

Нравится

1 комментарий

Вот пример (из конфигурации). В принципе - ничего сложного, но если появятся вопросы - задавайте, постараюсь ответить:

var selectedNodes = Page.TreeGrid.SelectedNodes;
if (selectedNodes.Count < 1) {
	return true;
}
Page.DataSource.LoadRow(new Guid(selectedNodes[0].Values["Id"].ToString()));
if (Page.DataSource.Rows.Count < 1) {
	return true;
}
var id = new Guid(selectedNodes[0].Values["Id"].ToString());
 
var entitySchemaManager = UserConnection.EntitySchemaManager;
var entitySchema = entitySchemaManager.GetInstanceByName("CommentaryFile"); 
var entitySchemaQuery = new EntitySchemaQuery(entitySchemaManager, entitySchema.Name);
var dataColumn = entitySchemaQuery.AddColumn("Data");
var nameColumn = entitySchemaQuery.AddColumn("Name");
entitySchemaQuery.Filters.Add(entitySchemaQuery.CreateFilterWithParameters(
	FilterComparisonType.Equal, entitySchema.GetPrimaryColumnName(), id));
var entityCollection = entitySchemaQuery.GetEntityCollection(UserConnection);
if (entityCollection.Count == 1) {
	var data = entityCollection[0].GetColumnValue(dataColumn.Name) as byte[];
	var Response = Page.Response;
	String fileName = (String)entityCollection[0].GetColumnValue(nameColumn.Name);
	Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlPathEncode(fileName));
	Response.ContentType = "APPLICATION/OCTET-STREAM";
	Response.AddHeader("Content-Length", data.Length.ToString());
	Response.BinaryWrite(data);
}
Показать все комментарии