Доберитесь GridView выбрал строку DataKey в JavaScript

Хорошо, вы хотите преобразовать его части, тогда «часть», которую вы запрашиваете, на практике соответствует:

Код Foxpro:

* Get the vendor code for case management hours
Select op_value ;
    FROM dbfs\am_opts ;
    WHERE op_code = "CMGT_VENDOR" ;
    INTO CURSOR cmgt_vndr
lcCMGTVendor = padr(cmgt_vndr.op_value, 4)

T-SQL:

declare @lcCMGTVendor char(20+4); -- if op_value size is char(20)
Select top(1) @lcCMGTVendor = op_value 
        FROM am_opts
        WHERE op_code = 'CMGT_VENDOR';

ИМХО padr () не было чем-то необходимым даже в коде foxpro. Выше кода в любом случае используйте char (20 + 4) вместо varchar () - поля foxpro имеют завершающие пробелы.

9
задан Craig 23 October 2008 в 04:29
поделиться

3 ответа

Я разработал его на основе ответа JasonS. То, что я сделал, было, создают скрытое поле в Представлении Сетки как это:

<asp:TemplateField ShowHeader="False">
    <ItemTemplate>
      <asp:HiddenField ID="hdID" runat="server" Value='<%# Eval("JobID") %>' />
    </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="False">
    <ItemTemplate>
      <asp:LinkButton ID="lnkSelect" runat="server" CommandName="select" Text="Select" />
    </ItemTemplate>
</asp:TemplateField>

Затем на OnRowDataBind имеют код для установки выбранной строки

protected virtual void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // Click to highlight row
        Control lnkSelect = e.Row.FindControl("lnkSelect");
        if (lnkSelect != null)
        {
            StringBuilder click = new StringBuilder();
            click.AppendLine(m_View.Page.ClientScript.GetPostBackClientHyperlink(lnkSelect, String.Empty));
            click.AppendLine(String.Format("onGridViewRowSelected('{0}')", e.Row.RowIndex));
            e.Row.Attributes.Add("onclick", click.ToString());
        }
    }            
}

И затем в JavaScript у меня есть код как это

<script type="text/javascript">

var selectedRowIndex = null;

function onGridViewRowSelected(rowIndex)
{        
    selectedRowIndex = rowIndex;
}

function editItem()
{   
    if (selectedRowIndex == null) return;

    var gridView = document.getElementById('<%= GridView1.ClientID %>');                
    var cell = gridView.rows[parseInt(selectedRowIndex)+1].cells[0];        
    var hidID = cell.childNodes[0];        
    window.open('JobTypeEdit.aspx?id=' + hidID.value);
}

</script> 

Работы обработка :-)

9
ответ дан 4 December 2019 в 20:26
поделиться

Базирующийся прочь Ваших комментариев к ответу @DaveK, в JavaScript можно установить идентификатор скрытого поля к clientId выбранной строки, когда пользователь выбирает его. Затем имейте свое использование функции editRecord набор значений на скрытом поле формы.

1
ответ дан 4 December 2019 в 20:26
поделиться

1) измените свою функцию JavaScript для использования параметра

function editRecord(clientId)
{ ....

2) произведите вызов в своей editRecord кнопке..., если Вы не хотите иметь дело со сгенерированными идентификаторами .NET, просто используйте простое

<input type="button" onclick="editRecord(your-rows-client-id-goes-here)" />
1
ответ дан 4 December 2019 в 20:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: