Отображение информации в ASPxGridView

276
31 января 2018, 11:43

Имеется табличка:

Её верстка:

 <dx:ASPxGridView Width="100%" ID="gvMeasurement" runat="server" AutoGenerateColumns="False" 
                                                                            ClientInstanceName="gvMeasurement" KeyFieldName="id_measurement" DataSourceID="ODS_Measurements"  
                                                                            OnCustomErrorText="CustomErrorText" OnBeforePerformDataSelect="grid_DataSelect"> 
                                                                            <Columns> 
                                                                                <dx:GridViewCommandColumn Name="CommandButtons" ButtonType="Image" VisibleIndex="0" 
                                                                                    ShowClearFilterButton="true"> 
                                                                                    <CustomButtons> 
                                                                                        <dx:GridViewCommandColumnCustomButton ID="btnInsertMI" Text="Добавить СИ в Блок" 
                                                                                            Image-AlternateText="Добавить СИ к Блоку" Image-SpriteProperties-CssClass="spr_folder_add12" /> 
                                                                                            <dx:GridViewCommandColumnCustomButton ID="btnDeleteMI" Text="Удалить СИ из Блока" 
                                                                                            Image-AlternateText="Добавить СИ к Блоку" Image-SpriteProperties-CssClass="spr_folder_add12" /> 
                                                                                    </CustomButtons> 
                                                                                    <HeaderTemplate> 
                                                                                        <input class="spr_garbage" type="image" src="/../Images/blank.gif" onclick="return GetGarbage(1);" 
                                                                                            title="Показать списанные" /> 
                                                                                        <input class="spr_tbl2_refresh16" type="image" src="/../Images/blank.gif" onclick="return GetGarbage(0);" 
                                                                                            title="Обновить данные" /> 
                                                                                        <input class="spr_expand16" type="image" src="/../Images/blank.gif" onclick="gvMeasurement.ExpandAll(); return false;" 
                                                                                            title="Раскрыть все" /> 
                                                                                        <input class="spr_collapse16" type="image" src="/../Images/blank.gif" onclick="gvMeasurement.CollapseAll(); return false;" 
                                                                                            title="Свернуть все" /> 
                                                                                    </HeaderTemplate> 
                                                                                    <HeaderStyle Wrap="False" /> 
                                                                                </dx:GridViewCommandColumn> 
                                                                                <dx:GridViewDataTextColumn FieldName="measure_name" Caption="Наименование СИ" VisibleIndex="2"> 
                                                                                    <Settings AllowGroup="False" AllowHeaderFilter="False" /> 
                                                                                </dx:GridViewDataTextColumn> 
                                                                                 <dx:GridViewDataTextColumn FieldName="corp_type" Caption="Тип СИ" VisibleIndex="3"> 
                                                                                    <Settings AllowGroup="False" AllowHeaderFilter="False" /> 
                                                                                </dx:GridViewDataTextColumn> 
                                                                                  <dx:GridViewDataTextColumn FieldName="reestr_code" Caption="Номер в Госреестре" VisibleIndex="4"> 
                                                                                    <Settings AllowGroup="False" AllowHeaderFilter="False" /> 
                                                                                </dx:GridViewDataTextColumn> 
                                                                                 <dx:GridViewDataTextColumn FieldName="manufacturer" Caption="Производитель" VisibleIndex="5"> 
                                                                                    <Settings AllowGroup="False" AllowHeaderFilter="False" /> 
                                                                                </dx:GridViewDataTextColumn> 
                                                                                 <dx:GridViewDataTextColumn FieldName="" Caption="Год введения в экспл" VisibleIndex="6"> 
                                                                                    <Settings AllowGroup="False" AllowHeaderFilter="False" /> 
                                                                                </dx:GridViewDataTextColumn> 
                                                                                <%--<dx:GridViewDataColumn FieldName="exp_flags" Caption="Контроль<br/>сроков" VisibleIndex="11"> 
                                                                                    <CellStyle HorizontalAlign="Center" /> 
                                                                                    <DataItemTemplate> 
                                                                                        <asp:Image ID="changeImage" runat="server" ImageUrl="~/Images/blank.gif" GenerateEmptyAlternateText="True" /> 
                                                                                    </DataItemTemplate> 
                                                                                    <Settings AllowGroup="False" ShowFilterRowMenu="False" AllowAutoFilter="True" /> 
                                                                                </dx:GridViewDataColumn>--%> 
                                                                            </Columns> 
                                                                            <TotalSummary> 
                                                                                <dx:ASPxSummaryItem DisplayFormat="Итого: {0:n0}" ShowInColumn="measure_name" FieldName="id_measurement" 
                                                                                    SummaryType="Count" /> 
                                                                            </TotalSummary> 
                                                                            <GroupSummary> 
                                                                                <dx:ASPxSummaryItem DisplayFormat="Кол-во: {0:n0}" FieldName="summary" SummaryType="Count" /> 
                                                                            </GroupSummary>

Есть процедура, вытягивающая данные из базы:

CREATE OR REPLACE FUNCTION metrolog.pmsystems_get_list_ms_by_msys_block(p_user_name character varying, p_msys_id integer, p_msys_block_id integer) 
 RETURNS refcursor 
 LANGUAGE plpgsql 
 STABLE 
AS $function$ 
--  Получение списка СИ по подразделению (Укороченная версия) 
--  comm: также возвращает СИ по всем дочерним, не привязанные к Корп реестру также возвращаются 
DECLARE  
  p_info     constant refcursor := 'p_info'; 
  c_id_ended constant integer   := 10; -- Для обозначения состояния СИ - СПИСАНО 
BEGIN 
    OPEN p_info FOR 
      SELECT mm.id_measurement, 
             rc.corp_name measure_name, 
             rc.corp_type, 
             rs.reestr_code, 
             ro.org_name manufacturer, 
             null, -- год введения в эксплуатацию 
             count(1) over (partition by rc.corp_name, rc.corp_type, rs.reestr_code) summary 
        FROM MEASUREMENT MM 
             join skynet.link_ms_blocks_measurement lbs on (mm.id_measurement = lbs.id_measurement) 
             left join reestr_org ro on (mm.id_org = ro.id_org) 
             left join reestr_company rc on (mm.id_reestr_corp = rc.id_reestr_corp) 
	         left join REESTR_STATE RS on (rs.id_state = rc.id_state) 
       WHERE mm.status = true 
         AND COALESCE(mm.id_statusoper, -1) <> c_id_ended 
         and lbs.msys_id = p_msys_id 
         and lbs.msys_block_id = p_msys_block_id 
       ORDER BY measure_name DESC; 
  RETURN p_info;      
EXCEPTION 
  WHEN others THEN 
     perform error_handler(p_user_name,'pmsystems','pmsystems_get_list_ms_by_msys_block',sqlstate, sqlerrm);  
END; 
$function$

Процедура рабочая, проверено. Как видно, на входе два id.

Вопрос в том, как в C# корректно написать, чтобы процедура сработала и на экране отобразились заветные данные?

Пробовал вот так:

 protected void ODS_Measurements_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) 
    { 
        NpgsqlParameter[] pgsqlParams = new NpgsqlParameter[] { new NpgsqlParameter("msys_id", NpgsqlDbType.Integer), 
                                                                new NpgsqlParameter("msys_block_id", NpgsqlDbType.Integer) 
        }; 
        pgsqlParams[0].Value = Session["ssPIDMSYS"]; 
        pgsqlParams[1].Value = Session["ssPIDBlock"]; 
        e.InputParameters["pgsqlParams"] = pgsqlParams; 
        e.InputParameters["pgsqlProc"] = Resources.PgSQLResources.GetListMSbyMSYSBlock; 
    } 
 
    protected void grid_DataSelect(object sender, EventArgs e) 
    { 
        Session["ssPIDMSYS"] = (sender as ASPxGridView).GetMasterRowKeyValue(); 
    }

В Value записываются null, почему? Не могу найти ответ.

READ ALSO
Обрезать окно другого приложения

Обрезать окно другого приложения

Есть звонилка, внизу у нее постоянно реклама висит, что раздражаетВозникла идея не блочить сервер рекламы, а просто обрезать снизу, либо серый...

227
Как преобразовать &ldquo;\\n&rdquo;, &ldquo;\\t&rdquo; в &ldquo;\n&rdquo;, &ldquo;\t&rdquo;

Как преобразовать “\\n”, “\\t” в “\n”, “\t”

Я беру из текстового файла содержимое вида:

211
Обрезать строку в c#

Обрезать строку в c#

Есть строка:

310