如题,谢谢
解决方案 »
- 求助 各位大神校内网 网址转换怎么实现的xiaonei变renren
- 读取超大目录下的一部份文件列表?
- C#图像处理问题:利用Graphics制作缩略图,保存后IE无法打开,但看图软件是可以看的。
- 对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。
- c#如何在windows窗体里加一个媒体播放器
- C#做了个VLC播放器,怎么样在播放器播放时做标记(画图)
- 有散分帖挖?我差几分就多个三角来
- 价值8000元的自定义数据合并系统源码下载
- 小问题,快来抢分!
- 请问如何判断线程结束!
- 如何在前台aspx页面调用后台.cs里的DataList的值?
- 求一分页存储过程
PageSize="3">
<Columns>
<asp:TemplateColumn>
<EditItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
OnEditCommand="DataGrid1_Edit" OnCancelCommand="DataGrid1_Cancel" runat="server">
<Columns>
<asp:TemplateColumn HeaderText="Discontinued">
<ItemTemplate>
<asp:Label ID="lblDiscontinued" Text='<%#ShowVal(Convert.ToBoolean( DataBinder.Eval(Container.DataItem, "Discontinued").ToString()) )%>' Runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:Label runat="server" id="lblProductID" Visible="False" Text='<%# DataBinder.Eval(Container.DataItem, "ProductId") %>'/>
<asp:Label ID="lblEditDiscontinued" Text='<%#ShowVal(Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "Discontinued").ToString() ))%>' Runat="server" />
<asp:DropDownList id="ddlDiscontinued" DataSource="<%# BindTheDiscontinued() %>" OnPreRender="SetDropDownIndex" DataTextField="Discontinued" DataValueField="Discontinued" runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Width="100px" HeaderText="Commands" />
</Columns>
</asp:DataGrid>
GetData obj;
string strSql;
string strConn;
DataSet ds;
SqlDataReader dr;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
strConn ="server=localhost;uid=sa;pwd=;database=northwind";
if (!Page.IsPostBack )
{
BindGrid();
}
}
//To Bind the DataGrid
void BindGrid()
{
obj=new GetData ();
strSql = "Select productid, discontinued from Products";
ds=obj.GetDataFromTable (strSql ,strConn);
DataGrid1.DataSource =ds;
DataGrid1.DataBind ();
}
//To display Yes/No for True/False
protected string ShowVal(bool blnval)
{
if (blnval==true)
{
return "Yes";
}
else
{
return "No";
}
}
//Bind the Data to the dropdownlist in the EditTemplate
protected SqlDataReader BindTheDiscontinued()
{
obj=new GetData ();
strSql ="SELECT distinct 'Discontinued' =" ;
strSql+=" CASE ";
strSql+=" WHEN Discontinued = 1 Then 'Yes'" ;
strSql+=" ELSE 'No'" ;
strSql+=" END " ;
strSql+=" From Products ";
dr=obj.GetSingleDataUsingReader (strSql ,strConn);
return dr;
}
//Set the Text of the Dropdownlist to the field value in Database
protected void SetDropDownIndex(Object sender ,System.EventArgs e )
{
DropDownList ed ;
ed = (DropDownList) sender;
ed.SelectedIndex = ed.Items.IndexOf(ed.Items.FindByText(strDiscontinued));
}
//For Edit Update Cancel
public void DataGrid1_Edit(Object sender, DataGridCommandEventArgs e)
{
strDiscontinued = ((Label )e.Item.FindControl("lblDiscontinued")).Text;
DataGrid1.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
}
public void DataGrid1_Update(Object sender, DataGridCommandEventArgs e)
{
DropDownList TempList ;
String TempValue ;
TempList = (DropDownList) e.Item.FindControl("ddlDiscontinued");
TempValue = TempList.SelectedItem.Value;
//Place update code here
Response.Write (TempValue);
DataGrid1.EditItemIndex = -1;
BindGrid();
}
public void DataGrid1_Cancel(Object sender, DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = -1;
BindGrid();
}
//Functions used in Class GetData.cs
SqlConnection mycn;
SqlDataAdapter myda;
SqlCommand mycmd;
DataSet ds;
String strConn;
SqlDataReader myReader;
public DataSet GetDataFromTable(string strSQL ,string strConnString)
{
try
{
strConn=strConnString;
mycn = new SqlConnection(strConn);
myda = new SqlDataAdapter (strSQL, mycn);
ds= new DataSet ();
myda.Fill (ds,"Table");
return ds;
}
catch(Exception ex)
{
throw new Exception (ex.Message.ToString ());
}
finally
{
mycn.Close ();
}
}
public SqlDataReader GetSingleDataUsingReader(string strSQL ,string strConnString)
{
try
{
strConn=strConnString;
mycn = new SqlConnection(strConn);
mycmd = new SqlCommand (strSQL, mycn);
mycn.Open ();
myReader=mycmd.ExecuteReader(CommandBehavior.CloseConnection );
return myReader;
}
catch(Exception ex)
{
throw new Exception (ex.Message.ToString ());
}
finally
{
//mycn.Close ();
}
}
單元格變化時,顯示ComboBox
private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
int i = dataGrid1.CurrentCell.RowNumber;
int j = dataGrid1.CurrentCell.ColumnNumber;
int x = dataGrid1.Left;
int y = dataGrid1.Top;
Rectangle rect = dataGrid1.GetCellBounds(i, j);
comboBox1.Left = x + rect.X;
comboBox1.Top = y + rect.Y;
comboBox1.Width = rect.Width;
comboBox1.Height = rect.Height;
comboBox1.Text = dataGrid1[i,j].ToString();
comboBox1.Visible = true;
}