尝试通过使用JQuery查找具有设置为SelectedRowStyle背景颜色的background-color属性的行来访问GridView的Selected行.那种颜色是#FF6600.我试过了
var row = $("tr").find().css("background-color", "#FF6600");
Run Code Online (Sandbox Code Playgroud)
但这只是将所有行设置为橙色.
var row = $("tr[background-color=#FF6600");
Run Code Online (Sandbox Code Playgroud)
返回空
var row = $("tr").find().attr("background-color");
Run Code Online (Sandbox Code Playgroud)
返回undefined
在javascript中是否有一个事件我可以绑定某种类型的监听器,它会告诉我什么时候在页面上执行所有javascript/jQuery/Ajax?在执行开始的时间和我需要监听器"监听"的时间之间,页面将不会加载/卸载/重新加载等,因此这些事件不起作用.该页面实际上没有做任何事情.单击该按钮并激活一些包含对Web服务的Ajax调用的javascript函数.毕竟,我想改变window.location.但是在我的情况下,在web服务完成之前,window.location正在发生变化.
目前使用setTimeout来实现这一点,但由于有时代码需要比正常运行更多的时间,有时window.location在所有其他javascript完成之前触发.简单的说
<input type = "button"... onclick="doThis();";
function doThis() {
try{
//Contains AJAX calls to web services which is mainly what screws up my timing since it may still be trying to execute stuff when the redirect statement happens
}
catch (e) {
}
//Currently doing setTimeout(redirect, 10000);
//Would like to simply detect when all of the above is done and then redirect.
}
Run Code Online (Sandbox Code Playgroud)
编辑:遗漏了一条至关重要的信息.AJAX调用处于for循环中.对我来说变量和成功回调的使用并不是很好,因为在我的成功回调执行时,我的变量在for循环中采用了新值.
我在 asp GridView 的模板字段中有一个按钮和一个复选框。我希望根据数据字段到期时间有条件地设置按钮的禁用属性和复选框的选中属性。如果“过期”等于“永久”,则应禁用该按钮并选中该复选框。如果没有,则启用按钮并取消选中复选框。我试过了:
<input type="button" id="expiration" disabled='<%# (string)Eval("Expiration") == "Permanant" ? "disabled" : "enabled" %>' value='<%# Eval("Expiration") %>'/>
<input type="checkbox" id="permanent" checked= '<%# (string)Eval("Expiration") == "Permanant" ? "checked" : "unchecked" %>'/>
Run Code Online (Sandbox Code Playgroud)
但似乎仅仅列出禁用和检查的属性就会导致所有按钮被禁用并检查所有复选框。
需要在SQLite数据库中本地存储大约20,000行信息.只有两列包含短文本字符串,因此实际的数据量很小,但我很难在设备上花3-5分钟插入行.我试过直接循环遍历数据集并调用一个简单的WritableDatabase.Insert,但这需要很长时间.所以我做了一些研究并被引导到InsertHelper类,其中作者网站以大约900行/秒的速度处理行(这应该让我在20-30秒).我仍然无法在3-5分钟内处理数据.我错过了什么?性能因设备而异吗?使用ZTE Optik Android 3.2.1.
public class SqLiteHelper : SQLiteOpenHelper
{
private const string DATABASE_NAME = "NAME";
private const int DATABASE_VERSION = 1;
private readonly Context _context;
public SqLiteHelper(Context context)
: base(context, DATABASE_NAME, null, DATABASE_VERSION)
{
_context = context;
}
public override void OnCreate(SQLiteDatabase db)
{
try
{
db.ExecSQL("Create Table Inventory (ItemNumber Text Primary Key Not Null, ItemDescription Text);");
}
catch (SQLiteException ex)
{
Toast.MakeText(_context, ex.Message, ToastLength.Long).Show();
}
}
public override void OnUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{ …Run Code Online (Sandbox Code Playgroud) 我整个下午一直在谷歌搜索这个问题,似乎无法在任何地方找到Dolphin和Base64图像或数据URL一起出现的任何地方.但是当我找到关于只是嵌入base64图像的文章时,他们几乎都说它几乎适用于所有浏览器,但是IE.当然,我不能只查看设备上的darn页面源或任何错误控制台(Samsung Galaxy Tab Gingerbread)来查看页面正在解释的内容.我得到的只是?图像应该在哪里.适用于Chrome和Opera,但Dolphin或股票浏览器均无效.
基本上,我有一个第三方签名板控件,其签名图像作为base64编码字符串返回给我.然后我接受base64编码的字符串,将其转换为DataURL并将其作为src分配给我的img控件.就像Chrome和Opera上的魅力一样,但在我需要它的任何一个移动浏览器上都没有.
var canvas = signaturestr.toDataURL("image/png") //Have also tried jpg and bmp
$("#image").attr("src", canvas)
Run Code Online (Sandbox Code Playgroud)
这给了我?图像应该在哪里.所以要么我需要一种方法来获取数据URL并使其可以接受这些浏览器,或者我需要能够使用原始base64代码来生成图像.另外需要注意的是,这是一个离线应用程序,我需要所有解决方案都在javascript或jquery中.
编辑:发现来自其他网站(包括来自stackoverflow论坛的头像)的base64图像确实出现在这些浏览器上.尝试过减小图像的大小,但仍然没有运气.仍然得到替代文字和?尺寸绝对不是问题.将我的图像缩小到比工作的头像更小的尺寸.真的不知道为什么这个图像在这些浏览器上不起作用.看起来与工作的图像完全相同.
我需要在登录时存储一些可用于应用程序中其他活动的信息.我试过创建一个单独的类:
public class MyApp : Application
{
private string siteID;
public string getSite()
{
return siteID;
}
public void setSite(string s)
{
siteID = s;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的登录活动中设置站点ID:
MyApp ma = new MyApp();
ma.setSite("IT-TEST");
Run Code Online (Sandbox Code Playgroud)
然后在另一个活动中尝试再次获取该值:
MyApp ma = new MyApp();
var site = ma.getSite();
Toast.MakeText(this, site, ToastLength.Long)
.Show();
Run Code Online (Sandbox Code Playgroud)
但这部分总是返回空白.我错过了什么?
我想要做的就是确保用户知道web服务正在处理,这样他们就不会在尝试工作时反复混搭按钮.
EditText partnumber = (EditText)FindViewById(Resource.Id.itemNumber);
partnumber.FocusChange += (object sender, View.FocusChangeEventArgs e) =>
{
if (!e.HasFocus)
{
var pd = ProgressDialog.Show(this, "Processing", "Please Wait...", false);
var res = new InventoryApp();
res.partValidateCompleted += delegate { pd.Hide(); };
var isValid = res.partValidate(partnumber.Text);
if (isValid == "Not Found")
{
partnumber.Text = "";
partnumber.RequestFocus();
partqty.ClearFocus();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.SetTitle("Invalid Part");
builder.SetMessage("Part number does not exist in database. Please ensure you are entering the correct part number and try again");
builder.SetPositiveButton("OK", delegate { }); …Run Code Online (Sandbox Code Playgroud) 我可以通过意图调用条形码扫描程序,但是当我尝试捕获基于此的扫描返回的值时,我在尝试构建解决方案时遇到以下错误.
这是我调用扫描程序并尝试返回结果的代码.点击事件在onCreate中.onActivityResult是与scan.Click事件相同的同类,相同名称空间中的方法.
Button scan = (Button)FindViewById(Resource.Id.scan);
scan.Click += (o, e) =>
{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.SetPackage("com.google.zxing.client.android");
intent.PutExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
StartActivityForResult(intent, 0);
};
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
}
else if (resultCode == RESULT_CANCELED)
{
}
}
}
Run Code Online (Sandbox Code Playgroud) 我只使用Android应用程序开发了几天所以请原谅我的无知.我正在尝试为一个EditText设置一个监听器,该监听器将在该字段失去焦点后触发.我在java中找到了一些例子,但找不到monodroid的例子.我该如何设置?
public class WeeklyInspection : Activity
{
WebView view = (WebView) FindViewById(Resource.Id.inspectionWV);
view.Settings.JavaScriptEnabled = true;
view.Settings.CacheMode = CacheModes.CacheElseNetwork;
view.SetWebChromeClient(new CustomWebChromeClient(this));
view.SetWebViewClient(new CustomWebViewClient(this));
view.LoadUrl("http://myurl.com");
}
private class CustomWebChromeClient: WebChromeClient
{
public override void OnConsoleMessage(string message, int lineNumber, string sourceID)
{
if (message.StartsWith("Submit")
//do all my submit stuff here
//if without error, I want to go back to the Main Activity. Have tried:
Intent intent = new Intent(BaseContext, typeof(Main));
StartActivity(intent); //Both BaseContext and StartActivity throw "Cannot access non-static method in static context"
//tried: …Run Code Online (Sandbox Code Playgroud) 在按钮上单击我将信息保存到Sqlite数据库.我在try块中有command.ExecuteNonQuery().我已经处理完所有事情只是找到catch块被捕获,但如果一切都通过,我希望其他代码执行,这将清除我的EditTexts的值并设置焦点.我尝试将该代码放在我的try块中的ExecuteNonQuery()之后,但它仍然在catch块之前执行,即使捕获到异常,因此我的edittexts的值在catch块甚至可以执行任何操作之前被清除.如果我完全在try/catch块之后添加代码,那就相同了.catch块似乎是最后执行的事情,到那时值已被清除,catch块甚至无法正常执行.如何在清除catch块并且不抛出异常之后将值设置为clear?
编辑:尝试把它放在一个finally块中,但同样的事情.locals窗口显示partnumber.Text和partQty.text在到达catch块时是空白的.但是如果我取出清除那些字段的代码,那么它们仍然在catch块中有它们的值.有没有什么特别的关于Sqlite异常会产生时间问题?
try
{
c.ExecuteNonQuery();
partnumber.Text = "";
partqty.Text = "";
partnumber.RequestFocus();
}
catch (SqliteException ex)
{
if (ex.ErrorCode.ToString() == "Constraint")
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.SetTitle("Item Duplication");
builder.SetMessage("You have already counted this item. How would you like to proceed?");
builder.SetPositiveButton("Add to Previous", delegate
{
var newQty = Convert.ToInt32(test.currQuantity(partnumber.Text)) + Convert.ToInt32(partqty.Text);
var n = connection.CreateCommand();
connection.Open();
n.CommandText = "Update [Items] Set Quantity = '" + newQty.ToString() + "' Where ItemNmbr = '" + partnumber.Text + "'";
n.ExecuteNonQuery();
Toast.MakeText(this, "Quantity …Run Code Online (Sandbox Code Playgroud)