Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. Ah tá. Eu ainda não instalei o VS2005 aqui, por isso não estou muito a par das novidades. Abraços, Graymalkin
  2. Agora entendi, mas isso não tem nada haver com o que falávamos antes (sobre limitar a edição na DataGrid). Mas, pode acontecer das células já estarem preenchidas e você vai querer que elas sejam substituídas com o alfabeto? Abraços, Graymalkin
  3. Sinceramente não entendi o que você quer... Os dados deveriam ser adicionados na DataTable (ou na origem dos dados da DataGrid). Abraços, Graymalkin
  4. Então utilize o método Find do recordset que está ligado à DataGrid. Ele vai posicionar sozinho. Abraços, Graymalkin
  5. fiz uns testes aqui no VB6 e não funfou desta forma ae! não quebrou a linha! abraços Você definiu a propriedade Multiline como True? Graymalkin
  6. Você vai escolher uma opção do seu menu certo? Nesse instante, vai haver uma célula selecionada, certo? Então, *nesse momento* você vai guardar a linha selecionada em um algum lugar (um variável qualquer). Isso porque depois, no evento CurrentCellChanged, você vai precisar saber qual a linha em que o caboclo estava quando selecionou a opção do menu (para que tudo para baixo dela possa ser editado e tudo para cima não). Entendeu agora? Graymalkin
  7. Graymalkin

    Data Grid

    Não sei se você é familiarizado com a programação Windows, mas todo o controle e ativação de eventos de uma janela ("janela" aqui é um termo bem amplo, abrangendo também botões, caixas de texto, listviews, datagrids, etc.) é feito através de mensagens. Estas mensagens são valores numéricos que representam o que a janela deve fazer (ou simplesmente detectar). O que a rotina WncProc nos permite é interceptar estas mensagens e decidir se elas devem ou não ser executadas (ou até mesmo alterar seus parâmetros). Certas mensagens podem ser utilizadas em diversos casos diferentes. Esse é justamente o caso da mensagem WM_NOTIFY que detectamos na rotina WndProc. As mensagens podem ter parâmetros que são informações úteis para a execução da mesma. Ao redimensionar uma coluna da ListView é enviada uma mensagem WM_NOTIFY com um parâmetro que é uma estrutura NMHDR. Nesta estrutura, também segue uma informação importante que está na propriedade Code. Se esta propriedade for igual a HDN_BEGINTRACK é porque o usuário está começando a tentar alterar o tamanho da coluna. Neste caso, atribui-se o valor 1 à propriedade Result, indicando assim que a alteração foi concluída e também ignora-se a execução desta mensagem ao não chamar a rotina WndProc da classe base. Como cada controle pode ter mensagens específicas, pode ser que isso só sirva apenas para a ListView. Sacou? Abraços, Graymalkin
  8. Nunca vi esse operador não. A divisão inteira em C# é executada quando ambos os elementos são inteiros. Faça o teste (usei um WebForm no exemplo, mas você pode trocar por MessageBoxes em WindowsForms): int i = 15; int j = 4; Response.Write(i/j); Response.Write(i/(double)j); Response.Write((double)i/j); Não, não tem. Só mesmo utilizando Math.pow(). Onde você encontrou esse operador? Não seria o operador condicional (?)? Se for, ele é igual ao Iif() do VB, que testa uma condição e retorna um dos outros dois parâmetros passados. Deslocam um bit para a direita ou para a esquerda. Por exemplo: int i = 2; int j = i >> 1; int k = i << 1; No caso acima, j vai ser 1, porque 2 em binário é "10" e se deslocarmos o primeiro bit para a direita (>>) teremos "01", que é 1 em decimal. E k vai ser 4, porque se delocarmos o primeiro bit de "10" (2 em decimal) para a esquerda, teremos "100" que é 4 em decimal. Sacou? Exatamente. Abraços, Graymalkin
  9. Dê uma olhada no seu outro tópico (http://scriptbrasil.com.br/forum/index.php?showtopic=69626) porque acabei de postar uma solução lá. Abraços, Graymalkin
  10. Bom, demorou (e deu um trabalho e tanto), mas consegui fazer. Declare a seguinte classe dentro da classe da página: public class ColunaLinkButton2 : DataGridColumn { private int linha = 0; void ColunaLinkButton_Click(object sender, EventArgs e) { LinkButton botão = (LinkButton)sender; TableCell célula = (TableCell)botão.Parent; DataGridItem item = (DataGridItem)célula.Parent; DataGrid dg = (DataGrid)item.Parent.Parent; LinkButton l = (LinkButton)célula.Controls[0]; string para = String.Format("{0}?{1}={2}", "procura.aspx", l.Attributes["Coluna"], l.Text); dg.Page.Response.Write(para); // dg.Page.Server.Transfer(para) } public override void InitializeCell(System.Web.UI.WebControls.TableCell cell, int columnIndex, System.Web.UI.WebControls.ListItemType itemType) { if (itemType == ListItemType.Header) { // pass } else { DataGrid dg = (DataGrid)this.Owner; DataTable dt = (DataTable)dg.DataSource; if (linha < dt.Rows.Count) { LinkButton l = new LinkButton(); l.Text = dt.Rows[linha][columnIndex].ToString(); l.Attributes.Add("Coluna", dt.Columns[columnIndex].ColumnName); cell.Controls.Add(l); l.Click += new System.EventHandler(ColunaLinkButton_Click); linha++; } else { linha = 0; } } base.InitializeCell(cell, columnIndex, itemType); } } Depois, coloque o seguinte no evento Load da página: DataTable dt = new DataTable("Tabela"); dt.Columns.AddRange(new DataColumn[] {new DataColumn("Código", Type.GetType("System.Int32")), new DataColumn("Nome", Type.GetType("System.String"))}); dt.Rows.Add(new object[] {1, "Junior"}); dt.Rows.Add(new object[] {2, "Graymalkin"}); dt.Rows.Add(new object[] {3, "Ramon"}); dt.Rows.Add(new object[] {4, "Teste"}); ColunaLinkButton2 col1 = new ColunaLinkButton2(); col1.HeaderText = "Código:"; ColunaLinkButton2 col2 = new ColunaLinkButton2(); col2.HeaderText = "Nome:"; DataGrid1.Columns.Add(col1); DataGrid1.Columns.Add(col2); DataGrid1.AutoGenerateColumns = false; DataGrid1.DataSource = dt; DataGrid1.DataBind(); Faça um teste aí e veja o resultado. Certo? Graymalkin
  11. Não seria melhor você mostrar na DataGrid apenas o recordset filtrado? Ou seja: set DataGrid1.DataSource = oRS Não? Graymalkin
  12. Troque os * por % na instrução SQL e veja se dá certo. Abraços, Graymalkin
  13. Dê uma pesquisada sobre uma função da API Win32 chamada GetShortPathName. Acho que ela é o que você precisa. Abraços, Graymalkin
  14. Experimente abrir o recordset através do método Open() do mesmo (e não através de um Execute() da conexão). Não tenho certeza, mas talvez o cursor de um Execute() seja forward-only. Abraços, Graymalkin
  15. Dá algum tipo de erro? Já experimentou criar um arquivo .bat com esse comando e mandar executar ele ao invés do comando direto? Abraços, Graymalkin
  16. Você olhou se "com1.filename" te retorna o caminho *completo* do arquivo? Não estou com o VB aqui, por isso não tenho certeza sobre isso. Abraços, Graymalkin
  17. Não... eu digo algo assim: dgHexa.ReadOnly = dgHexa.CurrentRowIndex >= LINHACLICADA Onde "LINHACLICADA" seria um campo da classe que guardaria posição da linha clicada. Sacou? Graymalkin
  18. essa árte ai do *ColunaLinkButton* ta faltando criar esse metodo ou classe certo? porque eu apenas estava olhando o link q você me passou, e tava assim o codigo... dai eu tava olhando la o link e enpaquei na parte da classe la, porque to fazendo em c#, e também n entendi nada doq você fez la, você pode me dizer como q faz m c# tudo aquilo, e seila se possivel explicar o codigo... porque ta foda.... tem também um Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn e também um Public Sub ColunaLinkButton_Click(ByVal sender As Object, ByVal e As EventArgs) nem sei como você chegou ai, você teve q digitar td isso ai, ou você entrou em algum evento do ColunaLinkButton...? tipo o click dele ai.... desculpe encher o saco mais uma vez...falou Sim, o Visual Studio.NET lista os métodos e propriedades para serem sobrescritos, porém acho que ele só faz isso para o VB.NET (estranhamente a Microsoft não colocou isso para o C#). De qualquer maneira, tive que reinstalar o computador ontem e ainda não instalei o VS.NET. Assim que eu instalar vou portar aquele código do VB.NET para o C# e colocar aqui. Me lembre, se não eu esqueço! Abraços, Graymalkin
  19. Graymalkin

    Data Grid

    Beleza. Qualquer coisa, 'stamos aí. Abraços, Graymalkin
  20. Quando você clica em um controle qualquer (um botão, por exemplo), essa propriedade não aparece na janelinha de propriedades (junto com as outras)? Abraços, Graymalkin
  21. Acredito que seria algo assim (estou sem o VS aqui para confirmar): If ds.Tables(0).Rows.Count = 0 Then MessageBox.Show("Vazio!") Else MessageBox.Show("Não-Vazio!") End If Certo? Graymalkin
  22. Graymalkin

    If And Else

    Se isso é JavaScript então por quê o "then" e o "end if"? Não utiliza-se {} para delimitar os blocos? Abraços, Graymalkin
  23. Aí vai um exemplo simples: System.Xml.XmlTextReader r = new System.Xml.XmlTextReader("c:\\pasta\\arquivo.xml"); while (r.Read()) { System.Console.WriteLine("nó [nome={0}] [valor={1}]", r.Name, r.Value); } r.Close(); Certo? Graymalkin
  24. No tópico http://scriptbrasil.com.br/forum/index.php?showtopic=67670 já existe um exemplo disso. Dê uma olhada lá e qualquer coisa, 'stamos aí. Abraços, Graymalkin
  25. Você vai ter que guardar a linha e coluna selecionada, e utilizar estas informações na condição acima. Ou seja, ainda é do mesmo jeito (só o que vai mudar é a condição). Certo? Graymalkin
×
×
  • Criar Novo...