Array
(
)

pegar codigo do grid via JS

Ricardo Silva
   - 10 mar 2008

Galera tenhu um grid comun na minha pagina

#Código

<asp:GridView ID="gridFornecedor" runat="server" 
  <Columns>
      <asp:BoundField DataField="COD_FORN" HeaderText= "Código">
      </asp:BoundField>
      <asp:BoundField DataField="RAZ_SOC_FORN" HeaderText= "Razão Social">
      </asp:BoundField>
      <asp:BoundField DataField="NOM_FAN_FORN" HeaderText="Nome Fantasia">
      </asp:BoundField>
  </Columns>
</asp:GridView>


Desculpe se o código tiver errado é que eu dei uma editada pra vicar melhor

Ricardo Silva
   - 10 mar 2008

Continuando, enviei sem quuerer (rsrsr)

se o usuario der um clique ele pinta aquela linha
se der dois clique ele chama uma tela de edição
pra fazer isso eu usei um codigo javaScript, assim:
#Código

var currentRowId = 0;
function SelectRow(){
    if (event.keyCode == 40)
        MarkRow(currentRowId+1);
    else if (event.keyCode == 38)
        MarkRow(currentRowId-1);
    if (event.keyCode == 13)
        Enter(currentRowId);
    if (event.keyCode == 46)
        Excluir(currentRowId);    
}
function MarkRow(rowId){
    if (document.getElementById(rowId) == null)
        return;
    if (document.getElementById(currentRowId) != null)
        document.getElementById(currentRowId).style.backgroundColor = ´#ffffff´;
    currentRowId = rowId;
    document.getElementById(rowId).style.backgroundColor = ´ffff00´;
}
function dobleClique(selecionado){
    var _pagina = "wf_CadFornecedor.aspx?id=" + selecionado;
    var _option = "dialogHeight: 370px; dialogWidth: 600px; status: no; center : yes; scroll: No";
    window.showModalDialog(_pagina,´´, _option);
}
function butonEdite(){
    var _pagina = "wf_CadFornecedor.aspx?id=" + currentRowId;
    var _option = "dialogHeight: 370px; dialogWidth: 600px; status: no; center : yes; scroll: No";
    window.showModalDialog(_pagina,´´, _option);
}


no RowDataBouns do code-binhide fica asim:
#Código
private int _i = 0;
    protected void gridFornecedor_RowDataBound(object sender, GridViewRowEventArgs e) {
        if(e.Row.RowType == DataControlRowType.DataRow && (e.Row.RowState == DataControlRowState.Alternate || e.Row.RowState == DataControlRowState.Normal)) {

            e.Row.Attributes.Add("onMouseOver", "this.style.cursor=´hand´;");

            //e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=´#ffffff´");

            e.Row.Attributes.Add("id", _i.ToString());

            e.Row.Attributes.Add("codigo", e.Row.Cells[1].Text);

            e.Row.Attributes.Add("onKeyDown", "SelectRow();");

            e.Row.Attributes.Add("onClick", "MarkRow(" + _i.ToString() + ");");

            e.Row.Attributes.Add("onDblClick", "dobleClique(" + e.Row.Cells[1].Text + ");");

            _i++;
        }
    }


Bom até aki ta funcionando
o que eu quero fazer é a função do doubleClique funcionar em um Buton
eu tentei algo assim:
#Código
protected void btnEditar_Click(object sender, EventArgs e) {
                string jScript = "";
                jScript += "<script type=´text/javascript´>";
                jScript += "butonEdite();";
                jScript += "</script>";

                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "_edite", jScript, false);
            }
        }


porem ele ta deixando o currentRowId esta em Zero
Pergunta alguem sabe como se faz pra armazenar o codigo da linha que o uaurio clicar via JavaScript

Ricardo Silva
   - 12 mar 2008

Galera axo que axei a solução pra esta pogueira....

é um pouco complicado... qndo eu tiver um tempinho a mais eu vo posta a solução, e ainda orientada Bunitinha...