假设我有一个Gridview有一些行。我有两列包含下拉列表。 我的问题是当GridView的SelectedIndexChanged事件发生在一个下拉列表中时,找到GridView的RowIndex,这样我就可以在同一行中应用另一个下拉列表的功能(也可以阅读注释)。 示例代码列在此处:
protected void dropdown1_SelectedIndexChanged(object sender, EventArgs e)
{
// I want the row index so that i can apply the functionality in same row
// If this doesn't work, any alternative ?
}
protected void func()
{
DataTable dt = (DataTable)ViewState["CurrentTable"]
for(int i = 0; i<dt.Rows.Count; i++)
{
DropdownList d1 = (DropDownList)GridView1.Rows[i].Cells[0].FindControl("dropdown1");
DropdownList d2 = (DropDownList)GridView1.Rows[i].Cells[1].FindControl("dropdown2");
}
}
答案 0 :(得分:1)
您可以这样获取GridView行:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define EXTRACHARS 2
#define SIZE 10
static void clear_buf(void)
{
int ch;
while(ch = getc(stdin), ch != '\n' && ch!=EOF);
clearerr(stdin);
}
int main(void)
{
int c = 0;
char seq[SIZE + EXTRACHARS];
printf("Enter 10 * or ' ': ");
fgets(seq, SIZE+EXTRACHARS, stdin);
if (seq[strlen(seq)- 1] != '\n')
{
printf("Buffer overflowed \n");
clear_buf();
}
else
{
while(c < SIZE)
{
if(seq[c] == '*')
{
printf("1");
}
else if(seq[c] == ' ')
{
printf("0");
}
++c;
}
printf("\n");
}
return EXIT_SUCCESS;
}
答案 1 :(得分:0)
将EventArgs
更改为DataGridViewCellEventArgs
,您就可以从e
获取行
所以你的方法变成了:
protected void dropdown1_SelectedIndexChanged(object sender, EventArgs e)
{
int row = e.RowIndex;
}